问题描述
我有这段代码应该通过ssh传输打开sftp会话。 ssh会话可以正常工作,就像我将命令发送到收到的答复完全找到的目标时一样。但是,如果我尝试通过相同的传输方式打开sftp会话,我的脚本将什么也不做,它会挂在那里。我试图用tshark捕获sftp流量,但似乎没有任何反应。有什么建议?预先感谢。
def ssh_connection(self)->'ssh connection with proxy':
"""This function calls paramiko module and uses SSHConfig and SSHClient
to parse ssh configuration and to create a socket to the destination router
respectively,passing through a jump host server CEM,using the proxy command"""
UserDict = {0: ('pinko','pallino'),1: ('pink','pall'),2: (self.user,self.password)}
while UserDict:
credentials = UserDict.popitem()
self.user = credentials[1][0]
self.password = credentials[1][1]
try:
self.hostname = '100.17.31.219'
self.host = self.conf.lookup(self.hostname)
self.ssh.load_system_host_keys()
self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.proxy = paramiko.ProxyCommand(self.host.get('proxycommand'))
print("Connecting to router...%s" % self.hostname)
self.ssh.connect(self.hostname,port=22,username=self.user,password=self.password,allow_agent=False,look_for_keys=False,sock=self.proxy,timeout=30)
self.channel = self.ssh.invoke_shell()
self.transport = self.ssh.get_transport()
if self.transport:
self.sftp = paramiko.SFTPClient.from_transport(self.transport)
print("Connected;%s" % self.hostname)
break
except Exception as e:
print(e)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)