在漫游远程命令

时间:2016-01-19 08:46:17

标签: ssh vagrant bamboo

我在远程服务器上配置了流浪盒(在我的示例中为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错误。

1 个答案:

答案 0 :(得分:1)

您可以使用-n开关阻止内部ssh命令从stdin读取来阻止外部ssh会话断开连接(作为参考,ssh man page

vagrant ssh my_box -- -n "ls"