%20zum%20selben%20Server%20her..png)
Ich möchte erreichen, dass ich mich target.server
von meinem lokalen Rechner aus mit einigen verbinden kann, ohne Passwörter eingeben zu müssen, und zwar mit den folgenden Befehlen:
ssh [email protected]
ssh [email protected]
Jeder der oben genannten Benutzer akzeptiert nur Verbindungen von einer bestimmten IP-Adresse, die jeweils gateway1.example
und entspricht gateway2.example
. Ich habe alle erforderlichen SSH-Schlüssel rechts hinzugefügt authorized_keys
, damit ich darauf verzichten kann, Passwörter einzugeben:
ssh [email protected]
vom lokalen Rechner, dann von .ssh [email protected]
gateway1
ssh [email protected]
vom lokalen Rechner, dann von .ssh [email protected]
gateway2
Jetzt muss ich wohl noch die richtigen Dinge in mein lokales packen ~/.ssh/config
. Wenn ich hinzufüge:
Host target.server
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Dann funktioniert es. Aber ich weiß nicht, wie ich beides hinbekomme und es funktioniert. Ich habe Folgendes versucht:ssh [email protected]
user1
user2
Host target.server
User user1
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Host target.server
User user2
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
oder
Host target.server
User user1
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
User user2
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
aber es hat trotzdem nicht geklappt user2
: alles ging durch gateway1
und nicht gateway2
.
Vielen Dank im Voraus für Ihre Hilfe!
Aktualisieren:Ich konnte die folgenden Befehle zum Laufen bringen:
ssh user1
ssh user2
(ohne @target.server
), mit der folgenden Konfiguration:
Host user1
HostName target.server
User user1
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Host user2
HostName target.server
User user2
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Dies ist, was ich verwenden werde, aber ich bin immer noch gespannt auf eine Lösung für die beiden Befehle am Anfang dieser Frage.
Antwort1
Wie Sie herausgefunden haben, sind Aliase eine gute Lösung. Wenn Sie sie nicht verwenden möchten, Match
ist die Direktive möglicherweise eine weitere gültige Option.
Host target.server
Match User user1
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Match User user2
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Aus der ssh_config
Manpage:
Übereinstimmen Beschränkt die folgenden Deklarationen (bis zur nächstenGastgeberoderÜbereinstimmenSchlüsselwort) nur dann zu verwenden, wenn die Bedingungen nach demÜbereinstimmenSchlüsselwort erfüllt sind.