大家经常会有这样的需求,公司有一台电脑处在局域网中,没法带回家中,但是又想访问它,或者有个ipad想通过ssh协议在任何地方连上自己的电脑编程,尤其是linux用户,这样的需求经常会有,那如何实现呢?让自己的电脑有个公网ip?理论上可以,但是现实当中是不可能的,其实不难,我们只需要把自己公司的电脑连上阿里云虚拟机(或者任何具有公网ip的机器),然后利用ssh的反向端口转发(ssh -R)就可以轻松实现了。

废话不多说开干:

第一步:实现ssh的公钥登入
mycomp$ ssh-keygen #生成公钥对,三次回车即可

mycomp$ ssh-copy-id root@ip_of_aliyun  #本地主机的公钥复制到远程主机的authorized_keys文件上

备注:
mycomp:是内地机器
aliyyun: 是有公网ip的外网机器

现在就可以免密通过命令:ssh root@ip_of_aliyun 登陆到阿里云了

第二步: 安装autossh

mycomp$ brew install autossh #安装autossh

autossh 可以理解成加强版的ssh客户端,它有“掉线自连”的功能,保证了mycomp 一直是和 aliyun连着的。

第三步: 实现反向端口转发

mycomp$ autossh -M 10023 -NfR 10022:localhost:22 root@ip_of_aliyun

上面的意思就是阿里云虚拟机10022端口接收到的数据转发到mycomp的22端口上。

第四步: 使用ssh协议进行访问

newcomp$ ssh mycompuUser@ip_of_aliyun -p 10022

**注意我们最终要访问的是内网主机,不是阿里云,所以用户要写内网主机的用户,而不是阿里云的用户.

把autossh配置成开机启动

Mac步骤

linux步骤

**注意:
1 用户的rsa公钥是放到自己的家目录下的,
换句话说,必须是用当初建立公钥登陆的那个用户来建立反向端口转发。
2 必须把阿里云对应的端口打开

参考文章

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐