SSH Tipps und Tricks: Difference between revisions

From Lolly's Wiki
Jump to navigationJump to search
Line 5: Line 5:
<pre>
<pre>
Host Host_B
Host Host_B
   ProxyCommand ssh GW_2 'exec 3<>/dev/tcp/%h/22; cat <&3 & cat >&3;kill $!'
   ProxyCommand ssh GW_2 "/bin/bash 'exec 3<>/dev/tcp/%h/22; cat <&3 & cat >&3;kill $!'"
</pre>
</pre>
Zu GW_2 kommen wir aber nur über GW_1, also brauchen wir hierfür auch einen Eintrag:
Zu GW_2 kommen wir aber nur über GW_1, also brauchen wir hierfür auch einen Eintrag:
<pre>
<pre>
Host GW_2
Host GW_2
   ProxyCommand ssh GW_1 'exec 3<>/dev/tcp/%h/22; cat <&3 & cat >&3;kill $!'
   ProxyCommand ssh GW_1 "/bin/bash -c 'exec 3<>/dev/tcp/%h/22; cat <&3 & cat >&3;kill $!'"
</pre>
</pre>
Jetzt gibt man auf Host_A einfach ssh Host_B ein und wird über die beiden Gateways GW_1 und GW_2 getunnelt. Portforwardings für z.B. NFS macht man jetzt einfach so:
Jetzt gibt man auf Host_A einfach ssh Host_B ein und wird über die beiden Gateways GW_1 und GW_2 getunnelt. Portforwardings für z.B. NFS macht man jetzt einfach so:

Revision as of 11:32, 15 June 2012

Kategorie:KnowHow

SSH über ein oder mehrere Hops

Um die SSH-Verbindung von Host_A zu Host_B machen zu können muß man sich über zwei Rechner dorthin tunneln (GW_1 und GW_2). Wenn man sich immer erst einloggt und dann weiter einloggt ist es manchmal sehr schwierig die Portforwardings mitzuschleifen, oder den Socks5-Proxy. Einfacher ist es, wenn man sich ProxyCommands für den Weg von Host_a zu Host_b definiert. Wir kommen also nur von GW_2 zu Host_b, also machen wir uns hierfür einen Eintrag in der ~/.ssh/config:

Host Host_B
   ProxyCommand ssh GW_2 "/bin/bash 'exec 3<>/dev/tcp/%h/22; cat <&3 & cat >&3;kill $!'"

Zu GW_2 kommen wir aber nur über GW_1, also brauchen wir hierfür auch einen Eintrag:

Host GW_2
   ProxyCommand ssh GW_1 "/bin/bash -c 'exec 3<>/dev/tcp/%h/22; cat <&3 & cat >&3;kill $!'"

Jetzt gibt man auf Host_A einfach ssh Host_B ein und wird über die beiden Gateways GW_1 und GW_2 getunnelt. Portforwardings für z.B. NFS macht man jetzt einfach so:

root@Host_A# share -F nfs -o ro=@127.0.0.1/32 /tmp
root@Host_A# ssh -R 22049:localhost:2049 user@Host_B
user@Host_B$ su -
root@Host_B# mount -oro nfs://127.0.0.1:22049/tmp /mnt