Python paramiko getaddrinfo error when trying to establish SSH connection

Using paramiko I am trying to establish a connection to the server, but this connection fails 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'm 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?

+4
source share
4 answers

Just add the port after the host and you will be installed:

 ssh.connect('MASKED', 22, username='MASKED',password='MASKED') 

By the way, as robots.jpg said, the connect method returns nothing. Instead of returning values, it throws exceptions .

Here is a more complete example:

 #!/usr/bin/env python # -*- coding: utf-8 -*- import paramiko, os, string, pprint, socket, traceback, sys time_out = 20 # Number of seconds for timeout port = 22 pp = pprint.PrettyPrinter(indent=2) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) file = open( "file.txt", "r" ) # NOTE: The file contains: # host user current_password array = [] for line in file: array = string.split(line.rstrip('\n'),) # pp.pprint(array) try: ssh.connect(array[0], port, array[1], array[2], timeout=time_out) print "Success!! -- Server: ", array[0], " Us: ", array[1] except paramiko.AuthenticationException: print "Authentication problem -- Server: ", array[0], " User: ", array[1] continue except socket.error, e: print "Comunication problem -- Server: ", array[0], " User: ", array[1] continue ssh.close() file.close() 

The code needs polishing, but it does the job.

+8
source

Are you sure the host name resolves the IP address? Try ping that_hostname on your computer to see.

0
source

Be careful that you do not have a username on your hosting

ssh.connect(hostname=' user@exemple.com ',port=22)

user@exemple.com not a hostname parameter that is suitable for connection

you should use:

ssh.connect(hostname='exemple.com',port=22,username='user')

0
source

You need to make some changes for DNS. Go to Network Connections β†’ IPv4-> Advanced Settings β†’ DNS, then select β€œAdd These DNS Suffixes” and enter your DNS server. It worked for me. In any case, this error occurs from the Ethernet settings. Good luck

0
source

Source: https://habr.com/ru/post/1343650/


All Articles