Wie kann ich ssh als den richtigen Benutzer anmelden?

5183
bstpierre

Ich verwende ssh auf einer Vielzahl von Maschinen, hauptsächlich Linux. Die Konten auf diesen Rechnern unterscheiden sich im Namensschema: Wenn mein Name First Last ist, habe ich Konten: First, Flast, Last_f, Lastf, und manchmal muss ich mich als Root anmelden. Ich möchte, dass der OpenSsh-Client für jede Maschine, die ich verwende, weiß, welches Konto verwendet wird, wenn ich es nicht in der Befehlszeile angreife.

Die Frage ist also: Wie mache ich das ssh serverRichtige, wenn kein Benutzername angegeben wird?

8

2 Antworten auf die Frage

18
Rich Adams

Sie können configin Ihrem Basisverzeichnis eine Datei erstellen .ssh, die einen Standardbenutzer, eine Identitätsdatei usw. angeben und einem Alias ​​zuweisen kann, den Sie zum Herstellen einer Verbindung verwenden können.

Zum Beispiel könnten Sie dies in die ~/.ssh/configDatei einfügen:

Host example HostName example.com User first_last IdentityFile ~/.ssh/example_rsa Port 22 RSAAuthentication yes PubkeyAuthentication yes  Host example2 HostName example2.com User last_first # other parameters as needed 

Dann können Sie einfach ssh exampleoder ssh example2in der Befehlszeile eingeben, um eine Verbindung herzustellen.

Sie können also für jeden Rechner, zu dem Sie eine Verbindung herstellen möchten, mit dem jeweiligen Benutzer einen einrichten. Verwenden Sie dann einfach die Aliase, um eine Verbindung herzustellen, ohne einen Benutzer angeben zu müssen. Sie können auch ein Muster verwenden, um mehrere Hosts abzugleichen.

Weitere Informationen und Details dazu, was Sie in einer Konfigurationsdatei in der Manpage ssh_config angeben können .

i assume you can specify another user/host pair later in the file? `Host example2/HostName example2.com/User last_first` and such? quack quixote vor 14 Jahren 0
Na sicher!!!!!!!!!!!!!!!!!! innaM vor 14 Jahren 0
Sie können beliebig viele in derselben .config-Datei angeben. Ich habe über 20 in mir ohne Probleme. Ich lasse einfach ein Leerzeichen zwischen den einzelnen Hosts, was wahrscheinlich nicht erforderlich ist, es jedoch lesbarer macht. Rich Adams vor 14 Jahren 3
Rich: Danke! Das funktioniert super. bstpierre vor 14 Jahren 0
Sollte es nicht `config`-Datei sein? Ohne Punkt am Anfang? danadam vor 14 Jahren 1
@danadam: Ja, du hast recht. Ich habe die Antwort entsprechend aktualisiert. Vielen Dank. Rich Adams vor 14 Jahren 0
@rich hat versucht, Sie zu veranlassen, eine andere Website in Ihrem Beispiel anzuzeigen. Ich hoffe, es macht dir nichts aus, dass ich weiter mache und es reinwerfe. quack quixote vor 14 Jahren 1
Das Einrücken von alles außer Zeilen, die "Host foo" enthalten, trägt erheblich zur Wartbarkeit bei. innaM vor 14 Jahren 4
@CristianCiupitu: Wenn man bedenkt, dass dies eine Linux-Frage ist, würde ich die Manpage von OpenBSD kaum als offiziell bezeichnen. In Linux * ssh * (z. B. * GSSAPIKeyExchange *) gibt es Optionen, die in der BSD-Version nicht verfügbar sind. Dennis vor 10 Jahren 1
@Dennis, Sie haben Recht, dass * GSSAPIKeyExchange * in der OpenBSD-Version nicht verfügbar ist, aber es scheint, dass es von einem Patch bereitgestellt wird, daher auch nicht in der tragbaren Version. Zum Beispiel [FreeBSD 10] (http://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5&manpath=FreeBSD+10.0-RELEASE) hat es nicht. Cristian Ciupitu vor 10 Jahren 0
@ CristianCiupitu: Das ist eine andere BSD-Version. Dies führt nur zu geringfügigen Unterschieden (von denen keine für die Frage relevant ist), aber die Verwendung von BSD-Manpages für Linux-Distributionen (und umgekehrt) ist im Allgemeinen eine schlechte Idee. Zum Beispiel die Syntaxen von [BSD] (http://www.freebsd.org/cgi/man.cgi?query=stat "stat (1)") und [Linux] (http: //linux.die). net / man / 1 / stat "stat (1): Datei- / Dateisystemstatus - Linux-Manpage") Flavors * stat * sind völlig unterschiedlich. Dennis vor 10 Jahren 0
@Dennis, alle anderen BSDs verwenden auch die portable Version. Heck, es gibt sogar eine [Linux-Manpage] (http://man7.org/linux/man-pages/man5/ssh_config.5.html), die * GSSAPIKeyExchange * nicht erwähnt. Ich bin damit einverstanden, vorsichtig zu sein, wenn man BSD-Manpage mit Linux mischt. Cristian Ciupitu vor 10 Jahren 0
1
guerda

Laut Rich Adams Antwort habe ich herausgefunden, wo PuTTY seine Einstellungen speichert.

Es ist alles in einem Registry-Baum gespeichert, Sie finden es unter HKEY_CURRENT_USER\Software\SimonTatham(Simon Tatham ist der Entwickler von PuTTY).
Dort können Sie sehen, wie ein Host definiert wird.