Python的Paramiko中的嵌套SSH会话中的SCP



基本上,我在Python中的嵌套SSH ssh会话上执行scp时遇到了问题。我用paramiko建立了从本地机器到另一台服务器的SSH,我们称之为AA。我想 scp 一个文件,让我们称它为f到服务器B。两台服务器具有相同的密码。这是代码:

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=hostname, username=username, password=password)
chan = ssh.invoke_shell()    
chan.send('scp f username@B:.')
buff = ''
while not buff.endswith(''s password: '):
resp = chan.recv(9999)
buff += resp
chan.send(password + 'n')
buff = ''
while not buff.endswith('$ '):
resp = chan.recv(9999)
buff += resp

我真的不确定为什么这不起作用。任何帮助不胜感激,非常感谢!

你在 PyCharm 中运行这个吗?它在什么时候失败,您是否收到任何错误?可能是字符串

buff.endswith(''s password: '): 

与 SSH 会话中输出的内容不完全匹配。除此之外,它看起来是正确的。我建议在buff.endswith上断点并检查buff中的实际内容,并检查它是否与您的字符串匹配,以及您的密码是否有效。

最新更新