最近新向实验室申请了三台服务器用于做毕业设计,但是因为不常在实验室,所以想到有没有一个好的方法能够做到即使不在实验室的局域网中也能够ssh到实验室的机器。也就是说做到从一个局域网中的A机器ssh至另一个局域网中的B机器。

其实大概想一下,就知道完全是可行的,毕竟A与B都联网了,没道理联网的机器却无法互相通信。但也很容易想到存在的限制,就是我怎么拿到B的唯一ID,以此来与它建立通信呢?一般情况下我们ssh用的是域名或者公网IP(归根结底就是公网IP),由此想到能否利用一台具备公网IP的机器C作为两个局域网AB之间的跳板机呢?

看了下ssh命令,发现是可以的,不需要安装其他软件,仅借助ssh即可实现。

在机器B上执行

1
ssh -fCNR <port1>:localhost:22 username@C

命令的意思是在C上做端口转发,将C机器的port1端口转发到B机器的22端口(22是sshd的默认端口)

这样一来,我们就能够做到使用A ssh连入C,再执行

1
ssh -p port1 localhost

即可ssh连入B