SSH 到主机#1,然后从主机#1 ssh 到主机#2,然后运行命令并保持连接

SSH 到主机#1,然后从主机#1 ssh 到主机#2,然后运行命令并保持连接

我尝试通过 SSH 连接到主机 #1,该主机有权访问主机 #2,我想在主机 #2 上运行命令。全部从我的本地机器执行。

这部分工作正常:

    ssh host1 -t "command; ssh user@host2"

但是,在 host2 上,我也想 cd 到一个目录,然后保持连接

我尝试使用这个:

    ssh host1 -t "command; ssh user@host2 -t 'command; cd /some/path/'"

我得到的输出是:

    Connection to host2 closed.
    Connection to host1 closed.

最后出现在我的本地机器上

预期结果是我的会话在 host2 上的 /some/path/ 目录中,通过 host1

答案1

除了@heemayl 所建议的tmux之外screen,还可以使用bash

ssh host1 -t "command; ssh user@host2 -t 'command; cd /some/path/; bash'"

答案2

在“host2”中安装screentmux然后运行以下命令将保持会话处于活动状态:

ssh host1 -t "command; ssh user@host2 -t 'command; cd /some/path/; screen'"

如果您使用命令 ie ssh host1 -t "command; ssh user@host2 -t 'command; cd /some/path/'",则运行命令后会话将关闭。但是如果您使用screen或 ,tmux远程会话将保持活动状态。

检查手册页屏幕tmux详情请见。tmux是解决同一问题的新方法screen

相关内容