it-swarm.com.de

Verbindung zum Remote-Host mit paramiko nicht möglich?

Ich möchte Dateien zwischen zwei Ubuntu-Servern mit scp übertragen. Ich habe scp zwischen den beiden Systemen getestet und es hat einwandfrei funktioniert. Also möchte ich den Befehl nicht jedes Mal ausführen, wenn ich Dateien benötige, also möchte ich ein Python-Skript schreiben, das automatisch funktioniert Lädt Dateien mit scp von einem anderen Host herunter.

Während der Online-Suche habe ich dieses Paramiko Modul gefunden und ich habe Probleme bei der Installation und habe dies mit dem Modul cryptography behoben. Nun wird der eigentliche Fehler mit dem Terminal unten erklärt.

>>> 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

Ich habe die IP und den Benutzernamen für die sichere Verwendung geändert. somename is replaced aber ich habe es mit original username versucht. Also habe ich es mehrmals versucht, aber ich erhalte immer noch den gleichen Fehler.

Wenn Sie Vorschläge zu diesem Problem haben, helfen Sie uns bitte.

9
SaiKiran

Vielleicht fehlt Ihnen die missing_Host_key_policy

Was ist mit diesem hier:

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)

weitere Beispiele hier: www.programcreek.com

21
tokhi

Versuchen Sie es mit diesem:

ssh.connect ('Host', Benutzername = 'Benutzername', Passwort = 'Passwort')

Sie können Ihren öffentlichen Schlüssel auch zu bekannten Hosts auf dem Server hinzufügen, wenn Sie das Kennwort überspringen und die Verbindung ohne Angabe des Kennworts herstellen möchten. Verwenden Sie in diesem Fall Folgendes:

ssh.connect ('Host', Benutzername = 'Benutzername')

1
troy_achilies

Für mich war die Lösung:

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