ssh python fabric

0 投票
1 回答
1012 浏览
提问于 2025-04-17 20:14

我其实不太明白该怎么做。

我有一台本地电脑,比如说它的地址是 192.168.1.101,用户名是 some_user。从这台电脑上,我可以通过 VPN 访问另一台电脑,地址是 10.0.132.17,而只有从这台电脑我才能访问到另一台电脑,地址是 10.0.132.15,我需要在那台电脑上部署我的脚本。

所以我需要:

$ ssh some_user@192.168.1.101 -> ssh another_user@10.0.132.17 -> ssh another_user@10.0.132.15

我能不能通过输入 ssh some_user@192.168.1.101 -p 2222 来访问 another_user@10.0.132.15 呢?

或者在 Python 的 fabric 中以某种方式写入环境变量?

1 个回答

0

除了使用明确的隧道,还有一个选择就是设置SSH,让它通过你的代理自动转发。你可以在你的 ~/.ssh/config 文件里添加类似下面的内容:

Host proxy_midstage
    User another_user
    HostName 10.0.132.17
    ProxyCommand ssh -q some_user@192.168.1.101 nc %h %p

Host proxy_final
    User another_user
    HostName 10.0.132.15
    ProxyCommand ssh -q proxy_midstage nc %h %p

这样,当你输入命令 ssh proxy_final 时,就能直接连接到部署服务器。虽然我不太确定,但应该是fabric也能用这个方法。

撰写回答