%3F.png)
Ich habe einen Zielserver, auf dem Ubuntu 14.04 (nennen wir ihn destserver
) läuft, und einen Tunnelserver, auf dem ebenfalls Ubuntu 14.04 (nennen wir ihn bridgeserver
) läuft, der eine feste IPV4-Adresse hat. Ich habe ihn derzeit so eingerichtet, dass er beim Booten eine Verbindung zu folgendem destserver
herstellt :autossh
bridgeserver
exec autossh -M 0 -N -R 2222:localhost:22 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -i /path/to/bridgeserver_mybridgeuser_id_rsa mybridgeuser@BRIDGESERVER_IP_ADDR
Ich verwende hier die Schlüsselauthentifizierung, sodass der obige Befehl ohne Passwörter ausgeführt werden kann. Wenn ich mich jetzt mit meinem Laptop irgendwo in einem öffentlichen Netzwerk befinde, kann ich von dort aus Folgendes tun:
ssh -t -o ProxyCommand='ssh mybridgeuser@BRIDGESERVER_IP_ADDR nc localhost 2222' mydestuser@localhost
... und das funktioniert gut, außer dass ich nach zwei Sätzen Passwörter gefragt werde:
$ ssh -t -o ProxyCommand='ssh mybridgeuser@BRIDGESERVER_IP_ADDR nc localhost 2222' mydestuser@localhost
mybridgeuser@BRIDGESERVER_IP_ADDR's password:
mydestuser@localhost's password:
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.2.0-42-generic x86_64)
...
Nun möchte ich diesen Zielserver anderen Leuten zur Verfügung stellen, aber ich möchte keine Authentifizierungsdetails des Bridge-Servers (den ich persönlich miete) weitergeben und daher auch nicht das Passwort von mybridgeuser
. Ich möchte also eine Verbindung wie oben herstellen – außer dass ich nur nach dem Passwort des Benutzers (sagen wir mydestuser
) bei gefragt werde destserver
.
Gibt es eine ssh
Syntax, die ich auf dem Client verwenden könnte, sodass ich mich destserver
nur mit den Benutzeranmeldeinformationen von destserver
(ohne Kennwortabfrage von bridgeserver
) verbinden kann, ohne Änderungen am aktuellen Setup mit vorzunehmen autossh
? Wenn Änderungen am Setup erforderlich sind, welche Änderungen würden am Setup vorgenommen werden – und wie würde der ssh
Befehl auf dem Laptop aussehen?
Antwort1
Hm, vielleicht irre ich mich, aber ich habe gerade Folgendes in meine Init-Datei geschrieben:
exec autossh -M 0 -N -R :2222:localhost:22 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -i /path/to/bridgeserver_mybridgeuser_id_rsa mybridgeuser@BRIDGESERVER_IP_ADDR
... anstatt:
exec autossh -M 0 -N -R 2222:localhost:22 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -i /path/to/bridgeserver_mybridgeuser_id_rsa mybridgeuser@BRIDGESERVER_IP_ADDR
... beachten Sie, ich habe einfach einen Doppelpunkt vor das eingefügt, was früher das 2222:localhost:22
; war, und jetzt kann ich auf dem Laptop einfach Folgendes eingeben:
ssh mydestuser@BRIDGESERVER_IP_ADDR -p 2222
... und jetzt scheint es zu funktionieren, da ich nur nach einem Passwort gefragt werde:
$ ssh mydestuser@BRIDGESERVER_IP_ADDR -p 2222
mydestuser@BRIDGESERVER_IP_ADDR's password:
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.2.0-42-generic x86_64)
...
... während ich das vorher nicht tun konnte?!:
$ ssh mydestuser@BRIDGESERVER_IP_ADDR -p 2222
ssh: connect to host BRIDGESERVER_IP_ADDR port 2222: Connection refused
Ich bin nicht sicher, warum dieser Doppelpunkt nötig war, daher würde ich trotzdem gerne eine richtige Antwort dazu lesen …