如何解决SSH两次使用Python
我想先在host1中进行SSH,然后在SSH中进行host2以获得一些文件。使用Paramiko的SSH托管一个成功。但是,当我执行与host1相同的操作时,它无法通过SSH连接到host2。它显示“无法建立SSH连接:在known_hosts中找不到服务器'host2'”
import paramiko
from paramiko.ssh_exception import AuthenticationException,SSHException,BadHostKeyException
try:
client = paramiko.SSHClient()
client.load_system_host_keys()
client.connect('host1',username='user1',password='pass1',timeout=5)
print ("Accessed host1 already")
try:
client2 = paramiko.SSHClient()
client2.load_system_host_keys()
client2.connect('host2',username='user2',password='pass2',timeout=5)
print ("Accessed host2 already")
except AuthenticationException:
print("Authentication failed,please verify your credentials: %s")
except SSHException as sshException:
print("Unable to establish SSH connection: %s" % sshException)
except BadHostKeyException as badHostKeyException:
print("Unable to verify server's host key: %s" % badHostKeyException)
except Exception as e:
print("Operation error: %s" % e)
except :
print ("SSH to host1 failed!!!")
我也尝试使用命令进入host2,但它始终一直在host1中。不确定这是正确的方法。请推荐我该怎么办。谢谢。
stdin1,stdout1,stderr1 = client.exec_command('ssh user2@host2;pass2;cd /;ls')
rawd = stdout1.read().decode('ascii').strip("\n")
print(rawd)
解决方法
对于初始连接,SSH询问您是否信任远程计算机。键入是时,它会存储在~/.ssh/known_hosts
中。
在运行脚本的系统上,尝试在控制台中手动建立SSH连接,让它在该文件中存储服务器的信息,然后启动程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。