我想连接到由LogMeIn Hamachi给出的服务器。如果使用"ssh xy@xzh.local"在命令提示符中,我才能访问它。但是,这在python的paramiko中不起作用。
如果我尝试在python中使用paramiko做同样的事情:ssh.connect(hostname='xy@xzh.local', username='', password='mypassword')
然后我得到以下错误:getaddrinfo failed.
然而,如果我查看Hamachi并将该特定站点的IP地址复制到我的python脚本中:ssh.connect(hostname='IP ADRESS', username='', password='mypassword')
我得到"Ip地址"在known_hosts中找不到。
我能做什么?当我从windows使用正常的CMD时,我可以访问。
ssh.connect(hostname='xy@xzh.local', username='', password='mypassword')
似乎不正确-hostname
包括您的用户名和@
符号。
这个工作吗?
ssh.connect(hostname='xzh.local', username='xy', password='mypassword')
你的第二个问题,当你试图通过IP连接,错误是不同的:地址不在已知的主机。你可以通过两种方法来解决这个问题:
忽略主机验证:
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
或在连接前添加主机的密钥:
client.get_host_keys().add('example.com', 'ssh-rsa', key)
后者应该是您的首选—禁用ssh的安全特性(s代表安全!)通常不是您应该选择的方法。如果你已经连接到xzh。本地通过ssh,主机的密钥应该已经在你的known_hosts文件。