Ich verwende macOS Sierra und meine SSH-Version ist:OpenSSH_7.5p1, OpenSSL 1.0.2l 25 May 2017
Ich habe diesen Inhalt in meinem .ssh/config
:
Host db
User user
HostName 192.168.1.111
ProxyCommand ssh user@db -W %h:%p
Host website
User user
HostName 192.168.1.100
ProxyCommand ssh user@Website -W %h:%p
Ich habe auch einen Server mit einer öffentlichen IP, der direkt mit diesen beiden Servern verbunden ist. Ich möchte meine SSH-Verbindung über diesen öffentlichen Server an meine privaten Server (Datenbank und Website) weiterleiten.
Wenn ich diesen Befehl verwende:
ssh user@db -W %h:%p
Ich bekomme diesen Fehler:
Bad stdio forwarding specification '%h:%p'
Was soll ich nun tun, um dieses Problem zu lösen und meinen macOS-Host mit meinen privaten Servern zu verbinden?
Ihre Konfigurationsdatei sowie der Befehl sind falsch.
Die ProxyCommand-Zeile sollte den Benutzer-/Hostnamen des JumpHost enthalten, aber nicht das endgültige Ziel.
Konfigurationsdatei:
Host db
User dbuser
HostName 192.168.1.111 #db host name/IP
ProxyCommand ssh user_public_server@public_server -W %h:%p
Host website
User websiteuser
HostName 192.168.1.100 #website host name/IP
ProxyCommand ssh user_public_server@public_server -W %h:%p
Der Befehl lautet dann einfach ssh db
oder ssh website
weil der benutzerfreundliche Hostname (z. B. db) wie in der Konfigurationsdatei definiert zu HostName/IP (z. B. 192.168.1.111) erweitert wird.
Fahrrad
-W %h:%p
Ich verstehe nicht, warum Sie einen ProxyCommand-Eintrag haben und auch in der Befehlszeile hinzufügen . Sollte man sich nicht für das eine oder das andere entscheiden und nicht für beides?