In meinem Fall möchte ich eine SVN-Prüfung durchführen:
svn co svn+ssh://10.106.191.164/home/svn/shproject
Ich möchte jedoch das Passwort in dieser einen Zeile haben, damit es nicht erscheint.
linux
ssh
svn
authentication
Alex
quelle
quelle
Antworten:
quelle
sshpass
(was für mich funktioniert).Da Sie SSH verwenden, ist die bevorzugte Methode die Verwendung eines öffentlichen Schlüssels für die Autorisierung, wodurch die Notwendigkeit eines Kennworts vollständig erspart wird.
Eine Anleitung zum Erstellen und Installieren der Schlüssel finden Sie hier .
quelle
Unendlich besser ist es, ein Schlüsselpaar zu generieren. Als Ihr lokaler Benutzer:
$ ssh-keygen -t rsa
(Akzeptiere alle Standardeinstellungen)
Nehmen Sie dann den Inhalt von .ssh / id_rsa.pub und fügen Sie ihn auf dem Remote-Server zu .ssh / authorized_keys hinzu. Stellen Sie sicher, dass alles in dieselbe Zeile eingefügt ist. Stellen Sie außerdem sicher, dass die Berechtigungen des .ssh-Verzeichnisses 600 sind.
Dann sollten Sie in der Lage sein, ssh ohne Aufforderung zur Eingabe eines Passworts.
quelle
Anstatt ein Passwort zu verwenden, sollten Sie sich ein privates / öffentliches Schlüsselpaar ansehen und dieses von ssh verwenden lassen. Die meisten Linux-Distributionen enthalten einfach zu verwendende Befehle, um ein solches Paar zu erstellen. Dies würde jedoch (einmal) Zugriff auf die Serverseite erfordern, um die Datei mit dem öffentlichen Schlüssel in der Datei ~ / .ssh / authorized_keys Ihres Benutzers abzulegen.
quelle
Nun, ich tun will , ein Passwort einzugeben - ich mag sie nicht auf meinem Passwort verläßt irgendwo gespeichert worden ; Ich möchte es jedoch einmal pro Satz von svn + ssh-Befehlen eingeben. und oft möchten Sie nur eines tun
svn checkout
- und müssen trotzdem Tonnen von Passwörtern eingeben. In einem solchen Fall möchte ich ein Passwort nur einmal eingeben.Daher waren nur die Antworten von @Boinst und @Marius für meinen Anwendungsfall relevant. Leider haben sie nicht geholfen, da ich sie nicht zur Arbeit bringen konnte. Ich frage mich, ob die Post-Autoren die Befehle selbst ausprobiert haben, bevor sie veröffentlicht wurden, da ich mir jetzt nicht vorstellen kann, wie sie funktionieren könnten - hier ist ein Test, den ich lokal auf meinem Ubuntu 10.04-PC durchgeführt habe (und ich breche jedes Mal mit Strg-C, wenn ich das sehe Passwortabfrage erscheint):
Soweit
--username/--password
aufsvn
Kommandozeile betrifft - das macht nichts mitsvn+ssh
, weil es zussh
fragen, nichtsvn
:svn - Subversion ignoriert die Optionen "--password" und "--username" - Stapelüberlauf
Wie das Protokoll zeigt,
ssh
akzeptiert es selbst kein "username:password@...
" in der URL - und auch nichtsvn
. Warum es akzeptabel ist, nur den Benutzernamen in der URL in zu verwendensvn
, wird wahrscheinlich erklärt in~/.subversion/config
:Beachten Sie, dass nichts darüber gesagt wird
<user>:<pass>@<hostname>
.Dank der Seite Subversion über SVN + SSH auf Debian wurde mir endlich klar, dass es eine
SVN_SSH
Umgebungsvariable gibt, die~/.subversion/config
für den (ich denke) ssh-Tunnel verwendet wird. und das eröffnet schließlich die Möglichkeit, das Programmsshpass
zu verwenden, um das Passwort auf eine solche Weise zu behandeln:Zumindest bin ich froh, dass ich endlich eine Lösung gefunden habe, die für mich funktioniert - hoffe, das hilft auch jemand anderem,
Prost!
quelle
quelle
Sie können auch den Benutzernamen und das Passwort der angegebenen Schalter verwenden .
Siehe Befehlszeilenauthentifizierung .
quelle
Ich denke, die Verwendung von sshpass (unter Linux) ist der beste Weg, dies zu erreichen.
Installieren Sie sshpass
Legen Sie die temporäre Umgebungsvariable fest
Bearbeiten Sie die SVN-Konfigurationsdatei
Zum Schluss kommentieren Sie add
sshpass -e
to ssh line vor demssh
Befehlquelle