“获取地址信息”尝试使用 Python Paramiko 建立 SSH 连接时出错
我正在尝试使用 Paramiko 与服务器建立连接,但该连接失败并显示以下输出
Traceback (most recent call last):
File "C:\ucatsScripts\cleanUcatsV2.py", line 13, in <module>
ssh.connect(host,username,password)
File "C:\Python27\lib\site-packages\paramiko-1.7.6-py2.7.egg\paramiko\client.py", line 278, in connect
for (family, socktype, proto, canonname, sockaddr) in socket.getaddrinfo(hostname, port, socket.AF_UNSPEC, socket.SOCK_STREAM):
socket.gaierror: [Errno 10109] getaddrinfo failed
这是我正在使用的代码
import paramiko
import cmd
import sys
# Connect to Server
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(
paramiko.AutoAddPolicy())
success = ssh.connect('MASKED',username='MASKED',password='MASKED')
if (success != True):
print "Connection Error"
sys.exit()
else:
print "Connection Established"
,有什么想法吗?
Using Paramiko I am trying to establish a connection with a server, but that connection is failing with the following output
Traceback (most recent call last):
File "C:\ucatsScripts\cleanUcatsV2.py", line 13, in <module>
ssh.connect(host,username,password)
File "C:\Python27\lib\site-packages\paramiko-1.7.6-py2.7.egg\paramiko\client.py", line 278, in connect
for (family, socktype, proto, canonname, sockaddr) in socket.getaddrinfo(hostname, port, socket.AF_UNSPEC, socket.SOCK_STREAM):
socket.gaierror: [Errno 10109] getaddrinfo failed
Here is the code I am using
import paramiko
import cmd
import sys
# Connect to Server
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(
paramiko.AutoAddPolicy())
success = ssh.connect('MASKED',username='MASKED',password='MASKED')
if (success != True):
print "Connection Error"
sys.exit()
else:
print "Connection Established"
any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
只需在主机后面添加端口即可:
顺便说一句,正如 robots.jpg 所说,connect 方法不会返回任何内容。它不是返回值,而是触发异常。
这是一个更完整的示例:
代码需要一些改进,但它可以完成工作。
Just add the port after the host and you'll be set:
BTW, as robots.jpg said, the connect method doesn't return anything. Instead of returning values it triggers exceptions.
Here is a more complete example:
The code needs some polish but it does the job.
请注意您的主机名上没有用户名
[email protected]< /a>
不是适合连接的主机名参数。你应该使用:
Be care to didn't have the username on your hostname
[email protected]
isn't a hostname parameter that fit for the connection.You should use:
您确定主机名解析为 IP 地址吗?尝试在您的计算机上
ping that_hostname
来查看。Are you sure the hostname resolves to IP address? Try
ping that_hostname
on your machine to see.您需要对 DNS 进行一些更改。
转到网络连接 -> IPv4->高级设置-> DNS 然后选中附加这些 DNS 后缀,并输入您的计算机 dns。
这对我有用。无论如何,这个错误来自以太网设置。
祝你好运 !
You need to make some changes for DNS.
Go to Network Connections -> IPv4-> Advanced Settings -> DNS then check Append these DNS suffixes, and enter your machine dns.
This worked for me. Anyway this error comes from the Ethernet settings.
Good Luck !