Ich möchte meinen passphrasengeschützten SSH-Schlüssel verwenden, wenn ich Aufgaben mit parallel-ssh
(und verwandten Tools) ausführe . Ich kann dies jedoch nicht zum Laufen bringen.
Alle diesbezüglichen Unterlagen parallel-ssh
zeigen, dass ich dies verwenden --askpass
oder -A
tun sollte:
-A
--askpass
Prompt for a password and pass it to ssh. The password may be
used for either to unlock a key or for password authentication. The
password is transferred in a fairly secure manner (e.g., it will not
show up in argument lists). However, be aware that a root user on
your system could potentially intercept the password.
Wenn ich jedoch die Passphrase meines Schlüssels eingebe, funktioniert dies nicht:
$ parallel-ssh --hosts=machines --user=my_user --askpass \
--timeout=0 --inline -v 'sudo apt-get update'
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[1] 09:59:36 [FAILURE] amritiii Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[2] 09:59:37 [FAILURE] gbdev Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[3] 09:59:37 [FAILURE] code Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[4] 09:59:37 [FAILURE] apollo Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[5] 09:59:37 [FAILURE] odin Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[6] 09:59:37 [FAILURE] hathor Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[7] 09:59:37 [FAILURE] ldap Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[8] 09:59:37 [FAILURE] thor Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[9] 09:59:37 [FAILURE] bioserver Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
Ich habe bestätigt, dass mein SSH-Schlüssel und meine Passphrase auf jedem der Computer funktionieren, daher habe ich keine Ahnung, wie dies funktioniert.
ssh
key-authentication
parallel-ssh
Nathan S. Watson-Haigh
quelle
quelle
parallel-ssh
undpssh
sind in der Tat gleich.Antworten:
Unter der Annahme, dass
parallel-ssh
undpssh
gleichwertig sind, sollte das, was Sie versuchen, gut funktionieren, wenn Sie die Passphrase mit dem-A
Schalter weiterleiten.Beispiel
Hier ist ein Beispiel , wo ich zwei verschiedene Systeme zu verbinden,
host1
undhost2
. Ich benutze den-l
Schalter,pssh
um einen Standardbenutzer von bereitzustellenroot
. Allerdingshost2
überschreibe ich dies im-H
Switch, indem ich den Hostnamen als angebeuser1@host2
.Wenn das oben genannte funktioniert, werden Sie die Ausgabe des Befehls bemerken, den ich ausführe
echo "hi"
.Ihr Problem
Das Problem, auf das Sie mit einer Passphrase auf Ihrem SSH-Schlüsselpaar stoßen, ist auf einen Fehler zurückzuführen. Dies ist der Fehler mit dem Titel: Problem 80: Passphrase nicht übergeben? . Der 4. Kommentar zu diesem Problem zeigt einen Patch:
Auszug
Verweise
quelle
parallel-ssh
undpssh
sind in der Tat die gleichen. Ich habe nicht gefragt, ob es möglich ist - die Dokumentation macht deutlich, dass es möglich ist. Ich habe Probleme damit, es tatsächlich zum Laufen zu bringen, wie es dokumentiert ist.parallel-ssh
jedoch immer noch nicht sicher sind, wie sie die Frage nach der Passwortabfrage am besten erkennen und daher mit dem eingegebenen Passwort / der eingegebenen Phrase antworten können, bleibe ich bei meiner Schlüsselbundmethode. Ich möchte nicht, dass meine Passphrase versehentlich an die falsche Eingabeaufforderung weitergegeben wird.parallel-ssh
Weitergabe der Passphrase warSSH
. Für diejenigen, die in Zukunft auf diese Frage stoßen, wurde dieser Fehler möglicherweise behoben, oder Sie möchten dieaskpass_client.py
Datei möglicherweise nicht bearbeiten . In beiden Fällen können Sie dies mithilfe derkeychain
Antwort ( unix.stackexchange.com/a/128998/57414 ) oder der Antwort des SSH -Agenten ( unix.stackexchange.com/a/129022/57414 )Ich habe es geschafft, dies durch Installation zu erreichen,
keychain
anstatt den Fehler , der meine Probleme verursacht, manuell zu patchen .Schlüsselbund installieren und manuell ausführen
Führen Sie den Befehl ohne Kennwort- / Passphrase-Eingabe aus
Dieses Mal brauche ich meine Passphrase nicht, wenn ich anrufe,
parallel-ssh
da der Schlüsselbund für die Authentifizierung sorgt:Führen Sie den Schlüsselbund beim Anmelden aus
Anstatt Ihren Schlüssel manuell ausführen und zum Schlüsselbund hinzufügen zu müssen, fügen Sie einfach Folgendes am Ende Ihres hinzu
~/.bash_profile
:Dadurch wird sichergestellt, dass Sie bei Ihrer ersten Anmeldung nach einem Neustart zur Eingabe der Passphrase Ihres Schlüssels aufgefordert werden. Ihr Schlüssel bleibt dann bis zum nächsten Neustart im Schlüsselbund oder Sie löschen den Schlüsselbund manuell.
Cron Jobs Verwenden des Schlüsselbunds
~/.bash_profile
Wenn das oben Genannte in Ihre Datei eingegeben wurde , können Sie die Tatsache nutzen, dass Ihr Schlüssel jetzt im Schlüsselbund gespeichert ist, indem Sie dieselbe Datei säuern, bevor Ihr Cronjob ausgeführt wird. Zum Beispiel habe ich ein Backup-Skript, das jeden Abend um 21:00 Uhr ausgeführt wird und Inhalte über SSH auf einen Remotecomputer kopiert. Dies ist ein Eintrag in meinem crontab (crontab -e
):quelle
Verwenden Sie den ssh-agent zur automatischen Authentifizierung (mit einem Shell-Namen als Argument, damit die Agentenumgebungsvariablen in dieser neuen Shell festgelegt werden). Fügen Sie den Schlüssel mit ssh-add hinzu und geben Sie Ihr Passwort nur einmal ein.
quelle