在办公室的电脑上(B机)是无法访问家里的Ubuntu机器(A机),因为网络的原因。如果这个时候有台ssh服务器C并且他有公网IP,那么B可以通过反向ssh通道访问A。
A ubuntu 192.168.1.110 22 root 123456
B win7
C ubuntu 115.216.148.183 6002 root 1qaz2wsx
1、在B机上打开ssh登录C机器;
2、在A机终端输入:ssh -R 18888:localhost:22 root@115.216.148.183 -p 6002
说明:
18888为C机与A机通信端口,由这里而设置;
localhost即本机的意思,照写即可;
22为A机的ssh服务端口号,根据实际而定;
root为访问C机的用户名,即ssh登录时的用户名;
115.216.148.183为C机IP,为公网IP;
6002为C机ssh服务端口号
root@115.216.148.183 -p 6002这一句其实就是A机登录C机的ssh服务所需信息
键入后、链接上C机,则提示输入密码,即C机的ssh登录密码。
2、在B机ssh客户端上输入(实际即在C机的终端输入)
ssh localhost -p 18888
表示接受18888端口的ssh访问,链接后提示输入密码,机A机的ssh登录密码。
输入密码后,ssh客户端实际已转入A机的环境,至此ssh反向隧道已打通。
传输文件:
在ssh客户端键入rz弹出打开文件对话框,若提示rz指令找不到则输入apt-get install lrzsz
切记:时刻记着当前ssh客户端对应哪台机器的终端。
确保ssh不掉线
autossh -M 5678 -NR 18888:localhost:22 root@115.216.148.183 -p 6002