Linux预期SSH挂起

Linux预期SSH挂起,linux,bash,ssh,expect,Linux,Bash,Ssh,Expect,我试图在计算机集群上安装R,有人告诉我去检查Expect 我正在学习一个关于LinuxExpect命令的教程,该命令自动将ssh过程安装到node中,并自动安装开源R 我被ssh部分卡住了: () 我可以运行代码并登录到远程服务器,但是,我输入ls,它就挂在远程服务器端。我按下ctrl+c键,它就会注销并返回到我的主机服务器 有谁能告诉我登录后如何在Expect中继续此过程 更新:由于Ireder的回答 您只需将expect eof替换为interact,它就会将控制权移交给用户 将交互放在脚本

我试图在计算机集群上安装R,有人告诉我去检查Expect

我正在学习一个关于LinuxExpect命令的教程,该命令自动将ssh过程安装到node中,并自动安装开源R

我被ssh部分卡住了: ()

我可以运行代码并登录到远程服务器,但是,我输入ls,它就挂在远程服务器端。我按下ctrl+c键,它就会注销并返回到我的主机服务器

有谁能告诉我登录后如何在Expect中继续此过程

更新:由于Ireder的回答


您只需将expect eof替换为interact,它就会将控制权移交给用户

交互
放在脚本末尾,它将控制权返回给脚本调用方,并允许您与远程shell交互。因此,请按以下方式更改脚本:

#... top of script
send -- "$password\r"

send -- "\r"

interact

请参见

非常感谢,它对我很有用。您能解释一下“expect eof”在这种情况下的作用吗?如果您想在流程关闭时执行一些后续操作,您只需要
expect eof
<当您手动退出衍生的交互式ssh会话时,code>expect eof无法正常工作。我不完全确定原因,但我假设存在一种竞争条件,即当您退出衍生ssh进程时,当expect查找eof时,“expect”无法使用衍生进程。在jenkins中使用“expect eof”时,我遇到了上述问题。我无法使用interact,因为它在jenkins中不起作用。我还有别的办法吗?
#... top of script
send -- "$password\r"

send -- "\r"

interact