web-dev-qa-db-fra.com

Impossible de se connecter à l'hôte distant à l'aide de paramiko?

Je veux transférer des fichiers entre deux serveurs Ubuntu à l’aide de scp, j’ai testé scp entre les deux systèmes et cela a fonctionné à merveille. télécharge les fichiers d'un autre hôte à l'aide de scp.

En cherchant en ligne, j'ai trouvé ceci Paramiko module et j’ai du mal à l’installer et j’ai rectifié le problème en utilisant le module cryptography.Maintenant, le problème réel est expliqué avec le terminal ci-dessous.

>>> from paramiko import SSHClient
>>> from scp import SCPClient
>>> ssh = SSHClient()
>>> ssh
<paramiko.client.SSHClient object at 0x1a41c90>
>>> ssh.load_system_Host_keys()
>>> ssh.set_missing_Host_key_policy(paramiko.AutoAddPolicy()) 
>>> ssh.connect('[email protected]')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 296, in c                                                                                    onnect
    to_try = list(self._families_and_addresses(hostname, port))
  File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 200, in _                                                                                    families_and_addresses
    addrinfos = socket.getaddrinfo(hostname, port, socket.AF_UNSPEC, socket.SOCK_S                                                                                    TREAM)
socket.gaierror: [Errno -2] Name or service not known
>>> ssh.connect('192.168.100.100')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 361, in c                                                                                    onnect
    server_key)
  File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 672, in m                                                                                    issing_Host_key
    raise SSHException('Server %r not found in known_hosts' % hostname)
paramiko.ssh_exception.SSHException: Server '192.168.100.100' not found in known_hos                                                                                    ts

J'ai changé l'adresse IP et le nom d'utilisateur pour une utilisation en toute sécurité somename is replaced, mais j'ai essayé avec original username.Alors j'ai essayé cela plusieurs fois, mais j'obtiens toujours la même erreur.

Des suggestions sur ce problème? S'il vous plaît, aidez-nous.

9
SaiKiran

Peut-être vous manque le missing_Host_key_policy

Qu'en est-il de celui-ci:

proxy = None
client = paramiko.SSHClient()
client.load_system_Host_keys()
client.set_missing_Host_key_policy(paramiko.AutoAddPolicy())
client.connect(Host['hostname'], username=Host['user'], sock=proxy)

plus d'exemples ici: www.programcreek.com

21
tokhi

Essayez d'utiliser ceci:

ssh.connect ('hôte', nom d'utilisateur = 'nom d'utilisateur', mot de passe = 'mot de passe')

Vous pouvez également ajouter votre clé publique à des hôtes connus du serveur, si vous souhaitez ignorer le mot de passe et vous connecter sans donner votre mot de passe . Dans ce cas, utilisez:

ssh.connect ('Host', nom d'utilisateur = 'nom d'utilisateur')

1
troy_achilies

Pour moi la solution était:

client = SSHClient()
client.load_system_Host_keys()
client.set_missing_Host_key_policy(AutoAddPolicy())
client.connect(Host, username=user,password=password)
0
Eric