使用Python paramiko进行SSH密钥转发

7 投票
1 回答
4614 浏览
提问于 2025-04-18 06:36

我们现在在桌面上运行一个脚本,这个脚本使用paramiko库通过SSH连接到一个远程的Linux主机。一旦我们连接上这个远程的Linux主机,就会执行另一个命令去登录到另一台远程机器。我们想要做的是,从paramiko把密钥传递给远程服务器,这样我们就可以再次使用这些密钥去连接另一台远程主机。

这就相当于在Linux中使用命令'ssh -A remotehost.com'的功能。

1 个回答

7

你可以在使用paramiko的时候,为一个会话开启SSH代理转发。具体做法是使用AgentRequestHandler。要实现这个功能,你需要调用paramiko.agent.AgentRequestHandler(s),其中的会话s就是你要操作的那个会话。例如:

client = paramiko.client.SSHClient()
client.connect(host, port, username)
s = client.get_transport().open_session()
paramiko.agent.AgentRequestHandler(s)

想要了解更多细节和代码,可以查看这篇文章

撰写回答