Python - 在内部打开多个SSH连接

1 投票
1 回答
1017 浏览
提问于 2025-04-17 04:22

我想做的事情是:

  1. 先通过SSH连接到服务器1
  2. 在服务器1里面,再通过SSH连接到服务器2
  3. 在服务器2里面,再通过SSH连接到服务器3
  4. 在服务器3上,执行一个命令(比如mysql)
  5. 在mysql控制台里,再执行另一个命令。
  6. 然后一步步退出,回到服务器1。

这样的操作可以实现吗?如果可以的话,怎么做呢?

1 个回答

0

这是可能的:只需在每个新的跳点上执行ssh(或者先上传一个对应的Python程序),当你最终到达目标时,再执行mysql

不过,这并不推荐:你绝对不应该在一台服务器上输入(或者更糟糕的是,存储)另一台服务器的密码。这意味着如果服务器1被攻破,你整个网络都会受到影响。

相反,建议你使用前两次的ssh会话来创建通往下一个跳点的隧道,可以使用命令行ssh-L选项(你可能本来就需要使用这个,见上文),或者使用paramiko

撰写回答