使用Python paramiko进行SSH密钥转发
我们现在在桌面上运行一个脚本,这个脚本使用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)
想要了解更多细节和代码,可以查看这篇文章。