我在远程服务器上配置了流浪盒(在我的示例中为my-server
)。我正在尝试通过SSH会话从我的机器运行一组remote commands on a vagrant box:
ssh me@my-server << "ENDSSH"
cd /dir/to/vagrant
vagrant status my_box
vagrant ssh my_box -- "ls"
echo "Good bye!"
ENDSSH
前3个命令正确执行,但第4个命令从不执行。打印输出vagrant ssh my_box -- "ls"
后,将关闭SSH会话。对于我尝试在my_box
上运行的任何命令都会发生这种情况。
如果我创建包含上述命令的脚本,请登录my-server
并手动运行脚本,执行所有命令,包括echo "Good bye!"
。
vagrant ssh my_box -- "ls"
是否可能产生EOF
来终止ssh会话?无论如何以某种方式捕获EOF
令牌然后继续脚本?
注意:
这个问题与another question有关竹问题有关。我用来执行远程命令的Bamboo插件在执行一些远程任务后会产生Broken transport; encountered EOF
错误。
答案 0 :(得分:1)
您可以使用-n
开关阻止内部ssh命令从stdin读取来阻止外部ssh会话断开连接(作为参考,ssh man page)
vagrant ssh my_box -- -n "ls"