我正在尝试ssh到两个连续的服务器,然后在成功连接到第二个服务器后执行命令。
我目前能够ssh到两台服务器背靠背没问题:
ssh -t server1 ssh server2
系统提示我输入server1的密码,然后使用授权密钥自动连接到server2。
在我进入server2之后,我想打开一个Jupyter笔记本:jupyter notebook
。
所以要冗长,如果我自己一行一行地执行这个,我想要复制:
ssh server1
ssh server2
jupyter notebook
以下是我尝试过的一些事情:
尝试1
ssh -t server1 ssh server2 -t jupyter notebook
ksh: jupyter:not found
Connection to server2 closed
Connection to server1 closed
所以这里我在server2中成功,但运行我的命令失败了。我想我需要做的是以某种方式加载我的.bashrc文件,以便定义我的jupyter
路径。但我也无法成功地做到这一点:
尝试2
ssh -t server1 ssh server2 -t source /filepath/.bashrc && jupyter notebook
ksh: .: syntax error at line 45: `(' unexpected
Connection to server2 closed.
Connection to server1 closed.
所以现在我认为我没有正确加载.bashrc。或许我的论点不合时宜,我不太确定。
答案 0 :(得分:0)
这是引用"的简单问题,因此命令在各自的服务器上是自包含的:
ssh -t ujump 'ssh server1 -t "source /filepath/.profile && jupyter notebook"'
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (A)
# ..............................................................(B)
命令(A)在server1上执行 命令(B)在ujump上执行