linux如何实现ssh端口转发?

linux如何实现ssh端口转发?

案例1:
A :公网IP(129.28.X.X)

B: 私网IP   (192.168.X.X)

如果不考虑防火墙等原因的话,B 可以SSH远程到 A,但是A无法SSH到B(因为B是私网IP)。

由于某种原因,现要求A能访问B,(可以先猜猜该怎么做,***行不行呢?我也不知道.....)

说明:只要其他人能访问A(公网IP),也就能通过A访问B了

操作如下:
#主机B执行(然后输入A的密码):
ssh -R 6121:127.0.0.1:22 129.28.X.X  -Nf
参数说明:

-R                转发

6121           A服务器所要开启的端口

127.0.0.1    转发目标(本次测试是B主机,也可以换成B能访问到的其他主机,这样A就能通过B访问其它主机了)

:22              转发目标的端口

-Nf              后台启用,不打开shell

linux如何实现ssh端口转发?

测试:在A服务器上连接本地端口6121即可
#主机A执行(然后输入B的密码):
ssh localhost -p 6121linux如何实现ssh端口转发?
场景:甲自己电脑上有个虚拟机,乙电脑上也有个虚拟机,但是他们不在同一个网段,通过上诉方法,只要他们能访问到同一台服务器(往往在公网上),那他们就能通信。感兴趣的可以自己整整。
Note:     ssh的时候如果报错 Permission denied (publickey,gssapi-keyex,gssapi-with-mic)  的话,在 /etc/ssh/sshd_config 文件添加一行 PasswordAuthentication yes