
Mein Ziel ist, wenn möglich, eine Verbindung herzustellen durch
$ ssh Endhost
Weil ich für eine Verbindung zu MySQL eine SSH-Verbindung zum Tunneln brauche, die der Endpunkt herstellen kann, der Hop-Host jedoch nicht.
TL;DR
Ich suche gerade nach einer Möglichkeit, die es .ssh/config
mir ermöglicht,
SSH-Endhost
Wenn es hinter den Kulissen
ssh -t Hop-Host ssh End-Host
Wenn die Action hinter den Kulissen
Macbook -> hop-user@hop-host (id_rsa authentication) -> end-host-user@end-host (id_rsa authentication)
Wobei Endhost, Endhost-Benutzer und Identitätsdatei zum Endhost bekannt und auf /home/hop-user/.ssh/config
dem Hop-Host definiert sind.
MacBook~/.ssh/config
Host hop-host
User hop-user
Hostname valid.tested.public.ip.address.to.hop.host
IdentityFile ~/.ssh/id_rsa
Host end-host
HostName end-point-hostname-as-defined-on-hop-host
ProxyCommand ssh -W %h:%p hop-host
Hop-Host Cent OS ~/.ssh/config
für Hop-Benutzer
Host end-point-hostname-as-defined-on-hop-host
HostName valid.tested.internal.ip.address.to.end.host
User end-host-user
IdentityFile ~/.ssh/keys/endhost
Zu beachtende Einschränkungnc
: Ich kann keine Konfiguration auf Hop-/End-Hosts ändern und habe es auf diesen nicht installiert.
Aktuelles Problem mit der angegebenen Konfiguration
$ ssh End-Host-
Kanal 0: Öffnen fehlgeschlagen: administrativ verboten:
Öffnen fehlgeschlagen ssh_exchange_identification: Verbindung vom Remote-Host geschlossen
Sache, die funktioniert:
$ ssh -t Hop-Host SSH-Endpunkt-Hostname wie auf dem Hop-Host definiert
Ich werde korrekt aufgefordert, „end-host-bash$“ einzugeben, und kann von dort aus alles tun, was ich möchte.
Dinge, die nicht oder nur teilweise funktionieren und die ich ausprobiert habe
1) Ändern der Macbook ~/.ssh/config
-Endhostkonfiguration für Hostname und Benutzer
Host end-host
HostName valid.tested.internal.ip.address.to.end.host
User end-host-user
ProxyCommand ssh -W %h:%p hop-host
$ ssh Endhost
[email geschützt]'s Passwort:
Was ich offensichtlich nicht habe. Und ich vermute, es liegt daran, dass Hop-Host .ssh/config
nicht rot ist.
2) Ändern der Macbook ~/.ssh/config
-Endhostkonfiguration für ProxyCommand
Host end-host
ProxyCommand ssh -t hop-host ssh end-point-hostname-as-defined-on-hop-host
$ ssh end-host
Pseudoterminal wird nicht zugewiesen, da stdin kein Terminal ist.
Pseudoterminal wird nicht zugewiesen, da stdin kein Terminal ist.
: Befehl nicht gefunden2.0-OpenSSH_6.2
ls
^CDurch Signal 2 beendet.
bash gibt mir die Möglichkeit, etwas einzugeben, aber meine Befehle werden nicht angezeigt.
Ich verstehe, dass das daran liegt, dass -o ProxyCommand="the command in .ssh/config in the right host"
im Hintergrund ein Aufruf erfolgt, aber vielleicht verstehe ich nicht, wie das tatsächlich funktioniert.