Oft ist es umständlich, sich per SSH mit entfernten Servern zu verbinden. Der Befehl dafür kann schnell sehr lang werden und ist häufig schwer zu merken.
Host Alias
Wollen wir nicht immer den vollen Hostnamen eingeben müssen, um uns per SSH mit einem Server zu verbinden, lohnt es sich eine SSH Konfiguration ~/.ssh/config
zu erstellen.
Dort definieren wir dann einen Alias Namen für den Ziel Host. In unserem Fall „myserver“ und legen mit HostName
fest, welcher Host sich dahinter verbergen soll. Außerdem können wir uns sparen, immer einen User angeben zu müssen, indem wir diesen per User
Eintrag festlegen.
Host myserver
HostName remote.server.com
User ouruser
Nun können wir uns ganz einfach verbinden:
$ ssh myserver
Über einen Jump Host mit einem anderen Host verbinden
Manchmal kann man sich nur über einen dritten Server (Jump Host) mit einem anderen Server verbinden. Die SSH Syntax dafür ist jedoch nicht einfach zu merken. Nehmen wir an wir wollen uns über den Jump Host jump.host.com mit unserem Ziel Host remote.server.com verbinden, dann müssen wir normalerweise folgendes eingeben:
$ ssh -J ouruser@jump.host.com:22 remote.server.com
Es ist jedoch deutlich einfacher, dies alles ebenfalls in der SSH Konfiguration ~/.ssh/config
zu definieren.
In unserem Fall können wir ProxyJump
verwenden, um den Jump Host zu definieren, über den wir uns mit dem Ziel Host verbinden wollen.
Den Jump Host selber definieren wir ebenfalls über einen Host
Eintrag:
Host jumphost
HostName jump.host.com
User ouruser
ProxyCommand none
Host myserver
HostName remote.server.com
User ouruser
ProxyJump jumphost
Nun können wir uns mit dem Ziel Host verbinden und werden automatisch über den Jump Host geschickt:
$ ssh myserver
In der SSH Konfiguration läßt sich allerdings noch viel mehr konfigurieren. Eine ausführlichere Anleitung findet sich hier ssh_config(5) - OpenBSD manual pages