Fehlerhafte Stdio-Weiterleitungsspezifikation '%h:%p

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?

-W %h:%pIch 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?

Antworten (1)

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 dboder ssh websiteweil der benutzerfreundliche Hostname (z. B. db) wie in der Konfigurationsdatei definiert zu HostName/IP (z. B. 192.168.1.111) erweitert wird.

immer noch der gleiche Fehler