2017-05-08 5 views
-1

Ich habe einen einfachen Code geschrieben, in dem ich ssh zu einem meiner Lab Device IP über os.system aufgerufen. Jetzt ist das Problem für mich, wie gebe ich ein Passwort ein? Kann ich das über Python machen?Passing SSH Passworteingabe über Python

Unten ist der Code, den ich habe mit:

import os 
os.system("ssh 192.168.1.100") 

Ich verstehe, versuchte, wie die os Modul funktionieren, aber bisher nicht in der Lage ist Passwort Argument zu liefern - wie liefere ich ein Passwort über Python dieses Programm?

Meine Umgebung ist Bash.

+0

Mögliches Duplikat [Befehlszeilenargumente in Python] (http://stackoverflow.com/questions/1009860/command-line-arguments-in-python) – Ajean

Antwort

0

sshpass installieren, starten Sie dann den Befehl mit os.system wie folgt aus:

os.system("sshpass -p \'yourpassword\' ssh -o StrictHostKeyChecking=no [email protected]") 

Oder Sie können einen Stoff Skript Ihren öffentlichen Schlüssel in das System kopieren, dann werden Sie kein Passwort für die Verbindung benötigen

from fabric.api import env, sudo, run 
def copy_pub_key(ip, user, password, pub_key): 

    env.host_string = ip 
    env.user = user 
    env.password = password 

    if user == "root": 
     sudo('echo \'{pub_key}\' >> /root/.ssh/authorized_keys'.format(
      pub_key=pub_key, 
      user=user 
     )) 
    else: 
     sudo('echo \'{pub_key}\' >> /home/{user}/.ssh/authorized_keys'.format(
      pub_key=pub_key, 
      user=user 
     )) 
+0

Vielen Dank für die Antwort. Das ultimative Ziel ist es, ein Login zu automatisieren und in einer Art offiziellen Umgebung kann ich keine Pakete hinzufügen, abgesehen von dem System, das mir das gibt. –

+0

Dann sollten Sie Fabric-Skript verwenden, um den öffentlichen Schlüssel in das System zu kopieren, dann können Sie ohne Kennwort verbinden. –