Passwortloses SSH für einen anderen Benutzernamen?

14

Ich möchte eine passwortlose SSH-Verbindung für ein Subversion-Projekt herstellen. Im Moment benutze ich ssh + svn und es ist ein bisschen nervig, weil ich das Passwort jedes Mal eingeben muss, wenn ich mit dem Server Geschäfte abwickeln möchte.

Ich habe im Internet mehrere Tutorials zum Generieren eines Schlüssels für passwortloses SSH gefunden, aber alle scheinen davon auszugehen, dass ich auf dem fernen System denselben Benutzernamen verwende wie auf meinem Heimsystem. Der Benutzername, den ich für ssh + svn verwende, unterscheidet sich jedoch von dem Namen des Benutzerkontos auf dem von mir ausgeführten System. Wie richte ich das richtig ein? Ich hatte kein Glück, nur den Namen in der Schlüsseldatei zu ändern.

user394
quelle

Antworten:

15

Sie müssen nur den Benutzernamen des anderen Systems im svnBefehl eingeben :

$ svn co svn+ssh://otheruser@othersystem/path/to/repo

Um auch den Titel Ihrer Frage zu beantworten:

$ ssh otheruser@othersystem

Dies führt dazu, dass sshdder Remote-Computer nach ~otheruser/.ssh/authorized_keysdem öffentlichen Schlüssel sucht , der dem privaten Schlüssel auf dem Computer entspricht, auf dem Sie den Befehl eingeben.

Warren Young
quelle
1
Ein Teil der Anweisungen bestand darin, eine Datei zu erstellen .ssh/id_rsa.pubund auf den Remote-Server hochzuladen. Als ich es geschafft habe, endete es mit localusername @ localsystem. Das sollte in remoteusername @ remotesystem geändert werden, oder? Sowohl vor Ort als auch aus der Ferne?
User394
5
Nein , nur hängen Sie den Inhalt Ihres lokalen id_rsa.pubbis authorized_keysauf dem Remote - System. Es wird klappen.
Warren Young
1
Alternativ haben viele Systeme ssh-copy-id, um dieses Problem zu lösen: "ssh-copy-id -i ~ / .ssh / id_rsa.pub Benutzername @ Remote-Maschine"
Matt Simmons
Leider ist dies bei vielen nicht der Fall, und es scheint, dass dies kein Standardbestandteil von OpenSSH ist. Daher gibt es mindestens ein paar verschiedene Implementierungen dieses Skripts, die im Umlauf sind.
Warren Young
Wenn Sie Gnome Seahorse verwenden, müssen Sie die Schlüssel automatisch bereitstellen.
Maciej Piechotka
9

Hierfür gibt es zwei Möglichkeiten:

1) setze user @ in die svn url; Dadurch wird svn + ssh angewiesen, sich als dieser Benutzer anzumelden. Ich halte das aus Wartungssicht für eine schlechte Idee, da Dinge wie externe Geräte, die auf andere Teile des Repositorys verweisen, nicht richtig funktionieren.

2) mache eine ~ / .ssh / config (dokumentiert als ssh_config ) die so etwas sagt wie:

Host othersystem
  User otheruser

Auf diese Weise wird bei jedem Versuch, auf ein anderes System zu sshen, standardmäßig der andere Benutzer verwendet. Das ist praktisch für Sie, wenn Sie ssh manuell ausführen und wenn Sie svn verwenden.

pjz
quelle
5

Sie müssen nicht auf beiden Maschinen den gleichen Benutzernamen haben. Solange Sie den Schlüssel ( ssh-keygen) generieren , müssen Sie die Zeile vom ~/.ssh/id_rsa.puboder ~/.ssh/id_dsa.pub(je nach Schlüsseltyp) vom lokalen Server kopieren und ~/.ssh/authorized_keysan den Remote- Server anhängen .

% ssh-keygen
% cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat > .ssh/authorized_keys'

Wenn Sie nicht remoteuserjedes Mal Folgendes eingeben möchten ~/.ssh/config:

Host remoteserver
    User remoteuser

PS. Der Name des Schlüssels kann in Form von sein, localuser@localhostaber es ist nur ein Name . Es kann genauso gut sein myfavouritekey@myfavouritecomputerund es würde niemanden interessieren.

Maciej Piechotka
quelle
Der obige Befehl "cat" ist der Kern des ssh-copy-idoben erwähnten allgemeinen, aber nicht standardmäßigen Skripts. Ich erkenne es, weil nicht alle Systeme, die ich verwende ssh-copy-id, mitgeliefert werden. Deshalb habe ich so etwas mehr als ein paar Mal geschrieben. :)
Warren Young
Ich habe noch nie davon gehört ssh-copy-id. Ich benutze normalerweise vimoder seahorse;)
Maciej Piechotka
0

Nachdem ich .ssh / config erstellt und ausgeführt habe:

cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat > .ssh/authorized_keys'

Ich erhalte eine Fehlermeldung:

Bad owner or permissions on /usr/share/eprints3/.ssh/config

dann füge ich hinzu chmod 600 .ssh/configund danach läuft es reibungslos.

enter code here
Prazetyo
quelle
1
Es ist besser, wenn Sie es in der authorized_keys-Datei anhängen, da es sonst auch die Pub-Schlüssel anderer entfernt. Also besser, wenn Sie Ihre Antwort mit 'cat >> .ssh / authorized_keys' bearbeiten
Nitin Mahesh