Wie kann man ssh dazu bringen, sich als der richtige Benutzer anzumelden?

8

Ich benutze ssh auf einer Vielzahl von Maschinen, hauptsächlich Linux. Die Konten auf diesen Computern unterscheiden sich im Namensschema: Wenn mein Name First Last lautet, 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 jeden von mir verwendeten Computer weiß, welches Konto verwendet werden soll, wenn ich es nicht in der Befehlszeile angegeben habe.

Die Frage ist also: Wie mache ich ssh serverDo The Right Thing, wenn kein Benutzername angegeben ist?

bstpierre
quelle

Antworten:

18

Sie können eine configDatei in Ihrem Home- .sshVerzeichnis erstellen , in der ein Standardbenutzer, eine Identitätsdatei usw. angegeben und einem Alias ​​zugewiesen werden kann, über den Sie eine Verbindung herstellen 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.

So können Sie für jeden Computer, zu dem Sie eine Verbindung herstellen möchten, mit dem entsprechenden 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 zu den Angaben in einer Konfigurationsdatei finden Sie in der Manpage ssh_config .

Rich Adams
quelle
3
Auf jeden Fall können Sie in derselben .config-Datei so viele angeben, wie Sie möchten. Ich habe über 20 in meinen ohne Probleme. Ich lasse einfach ein Leerzeichen zwischen den einzelnen Hosts, was wahrscheinlich nicht erforderlich ist, aber die Lesbarkeit verbessert.
Rich Adams
1
Sollte es nicht eine configDatei sein? Ohne Punkt am Anfang?
Danadam
1
@rich hat versucht, Sie dazu zu bringen, eine andere Site in Ihrem Beispiel zu zeigen. Ich hoffe, es macht dir nichts aus, wenn ich weitermache und es
hineinwerfe
4
Das Einrücken von allem außer Zeilen, die "Host foo" enthalten, trägt wesentlich zur Wartbarkeit bei.
InnaM
1
@CristianCiupitu: Angesichts der Linux-Frage würde ich die OpenBSD-Manpage kaum als die offizielle bezeichnen. In ssh von Linux gibt es Optionen (z. B. GSSAPIKeyExchange ), die in der BSD-Version nicht verfügbar sind.
Dennis
1

Laut der Antwort von Rich Adam habe ich für PuTTY herausgefunden, wo es seine Einstellungen speichert.

Es ist alles in einem Registrierungsbaum 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 ist.

Guerda
quelle
1

Wenn Sie es für JEDE Site ändern möchten:

Bearbeiten Sie Ihre ~/.ssh/config, um dies zu haben:

Host *
    User buck
hopeseekr
quelle