SSH tunneling: Difference between revisions

From FSU Fox's Lab Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
This is a simple guideline for using ssh tunneling.
This is a simple guideline for using ssh tunneling.


ssh connection uses port 22 to communicate by default.  
<pre>ssh</pre> connection uses port 22 to communicate by default.  


Suppose we have this situation:
Suppose we have this situation:
Line 7: Line 7:
[[File:SSH tunneling diagram.png|800px|frameless|none]]
[[File:SSH tunneling diagram.png|800px|frameless|none]]


haha.myhome cannot directly connect to fox.fsu.edu, but able to connect to gateway.fsu.edu.  
'''haha.myhome''' cannot directly connect to '''fox.fsu.edu''', but able to connect to '''gateway.fsu.edu'''.  


For the interactive shell, that would be not a problem,  
For the interactive shell, that would be not a problem,  
#from haha.myhome, login to gateway.fsu.edu
#from '''haha.myhome''', login to '''gateway.fsu.edu'''
#from gateway.fsu.edu, login to fox.fsu.edu
#from '''gateway.fsu.edu''', login to '''fox.fsu.edu'''


However, it is very clumsy to copy files from fox.fsu.edu to haha.myhome, there is no direct connection.  
However, it is very clumsy to copy files from '''fox.fsu.edu''' to '''haha.myhome''', there is no direct connection.  


In this case, ssh tunning makes life easier.  
In this case, ssh tunning makes life easier.  


To use gateway.fsu.edu as a bridge, bridge to fox.fsu.edu, port 22 to haha.myhome, port 9896, by using the following command
To use '''gateway.fsu.edu''' as a bridge, bridge to '''fox.fsu.edu''', port 22 to '''haha.myhome''', port 9896, by using the following command
  haha.myhome$ssh -N gatewayUser@gateway.fsu.edu -L 9896:fox.fsu.edu:22
  haha.myhome$ssh -N gatewayUser@gateway.fsu.edu -L 9896:fox.fsu.edu:22


After the bridge is established, port 9896 at hah.myhome is connected to port 22 at fox.fsu.edu. So, we can either ssh, scp, or rsync by
After the bridge is established, port 9896 at '''haha.myhome''' is connected to port 22 at '''fox.fsu.edu'''. So, we can either ssh, scp, or rsync by
  haha.myhome$ssh -P 9896 foxUser@localhost
  haha.myhome$ssh -p 9896 foxUser@localhost
  haha.myhome$scp -P 9896 foxUser@localhost:<files> <haha.myhome_destination>
  haha.myhome$scp -P 9896 foxUser@localhost:<files> <haha.myhome_destination>
  haha.myhome$rsync -arvzp -e 'ssh -p 9896' foxUser@localhost:<files> <haha.myhome_destination>
  haha.myhome$rsync -arvzp -e 'ssh -p 9896' foxUser@localhost:<files> <haha.myhome_destination>
== Jump from gateway.fsu.edu ==
If only for interactive shell, using '''gateway.fsu.edu''' as a jump server is easiser.
haha.myhome$ssh -J gatewayUser@gateway.fsu.edu -XY foxUser@fox.fsu.edu

Latest revision as of 17:52, 21 August 2024

This is a simple guideline for using ssh tunneling.

ssh

connection uses port 22 to communicate by default.

Suppose we have this situation:

SSH tunneling diagram.png

haha.myhome cannot directly connect to fox.fsu.edu, but able to connect to gateway.fsu.edu.

For the interactive shell, that would be not a problem,

  1. from haha.myhome, login to gateway.fsu.edu
  2. from gateway.fsu.edu, login to fox.fsu.edu

However, it is very clumsy to copy files from fox.fsu.edu to haha.myhome, there is no direct connection.

In this case, ssh tunning makes life easier.

To use gateway.fsu.edu as a bridge, bridge to fox.fsu.edu, port 22 to haha.myhome, port 9896, by using the following command

haha.myhome$ssh -N gatewayUser@gateway.fsu.edu -L 9896:fox.fsu.edu:22

After the bridge is established, port 9896 at haha.myhome is connected to port 22 at fox.fsu.edu. So, we can either ssh, scp, or rsync by

haha.myhome$ssh -p 9896 foxUser@localhost
haha.myhome$scp -P 9896 foxUser@localhost:<files> <haha.myhome_destination>
haha.myhome$rsync -arvzp -e 'ssh -p 9896' foxUser@localhost:<files> <haha.myhome_destination>

Jump from gateway.fsu.edu

If only for interactive shell, using gateway.fsu.edu as a jump server is easiser.

haha.myhome$ssh -J gatewayUser@gateway.fsu.edu -XY foxUser@fox.fsu.edu