In den vorherigen Antworten wird erwähnt, wie die ProxyJump-Direktive (hinzugefügt in OpenSSH 7.3) zum Herstellen einer Verbindung über einen Zwischenserver (normalerweise als Bastion-Host bezeichnet) verwendet wird, aber nur als Befehlszeilenargument.
Sofern es sich nicht um eine Maschine handelt, die Sie in Zukunft nicht mehr anschließen werden, ist es am besten, wenn Sie sie konfigurieren ~/.ssh/config
.
Ich würde eine Datei wie:
Host office-machine
Hostname yochay-machine.internal.company.local
ProxyJump bastion-machine
Host bastion-machine
Hostname organization-server.company.com
...
Wenn Sie eine frühere Version von OpenSSH verwenden, die ProxyJump nicht unterstützt, ersetzen Sie diese durch die entsprechende Version:
ProxyCommand ssh -W %h:%p bastion-machine
und wenn Ihre lokale ssh-Version eine sehr alte war, die dies nicht unterstützte -W
:
ssh bastion-machine nc %h %p
Dies setzt allerdings voraus, dass die Bastion-Maschine nc
installiert ist.
Das Schöne an ssh ist, dass Sie jedes Ziel in der Datei konfigurieren können und sie sehr gut stapeln. Daher arbeiten Sie office-machine
bei allen Tools (ssh, scp, sftp ...) als Hostnamen, da es sich um direkte Verbindungen handelte, und sie werden anhand von ssh_config herausfinden, wie eine Verbindung hergestellt werden kann. Sie können auch Platzhalter verwenden Host *.internal.company.local
, um alle Hosts, die so enden, durch eine bestimmte Bastion zu führen. Dies gilt für alle Hosts. Einmal richtig konfiguriert, wären die einzigen Unterschiede zwischen One-Hop-Verbindungen und 20 die langsameren Verbindungszeiten.