最近总是需要从笔记本通过公网ssh登录公司的服务器(192.168.1.100),从服务器ssh登录到自己的工作PC(192.168.1.120)
再从自己的工作PC拷贝资料,因为对外只映射了服务器的ssh端口,登录后直接进入到服务器中(192.168.1.100)。很是麻烦。
当然也可以添加路由器的端口映射,这样可以从外网直接登录到工作PC(这种方式最简单,但没有修改路由器的权限,只能找其他方法)。
大概的组网如下:
都是安装ubuntu系统
路由器对外提供222映射到服务器的22端口
路由器对外的域名为:domain.com username
笔记本---------------------(公网)-----路由器-------------------------------------服务器(192.168.1.100)
|
|
| myname
------------------------------------工作PC(192.168.1.120)
解决方法:ssh隧道
可以简单理解为,通过服务器(192.168.1.100)作为代理,中转到工作PC。
一:在笔记本上执行命令: ssh -N -f -L 127.0.0.1:10022:192.168.1.120:22 username@domain.com -p 222
之后输入:username的密码即可。
二:使用
二.一:在笔记本上直接登录工作PC(192.168.1.120),命令如下:
ssh myname@127.0.0.1 -p 10022
二.二:在笔记本上直接从工作PC拷贝文件到本地,命令如下:
scp -P 10022 myname@127.0.0.1:~/files ./
详解:
具体的可以 man ssh。
-N, 不执行远程命令,
-f:后台执行
-L:ssh隧道命令,端口映射
127.0.0.1:代表笔记本,当前主机
10022:当前主机的监听端口
192.168.1.120:工作PC,操作的目标机器
22:目标端口(工作PC的ssh端口)
username: 服务器上的帐号
domain.com -p 222:域名,以及路由器对外映射的服务器的ssh端口
myname:工作PC上的帐号
参考链接:
http://blog.csdn.net/dongnan591172113/article/details/41012013