通过 SSH 隧道远程访问局域网的主机
通过 SSH 隧道远程访问局域网的主机
远程访问
手上有多台设备,想要稳定在一个环境里工作。
在 PC 安装了新的东西,假设就是升级了 golang 版本, 然后笔记本又要处理一次,挺麻烦的。
不同设备性能不同,总是希望能用最好的硬件, 笔记本/ipad 只需要文本编辑,把计算的活交给性能最好的 PC。
于是就在利用云主机做 SSH 隧道访问家里 PC, 排除媒体文件(图片/音视频等大文件传输), 个人使用,买个最便宜的云主机是够用的。
但是建议有需要时才临时开启, 比如先远程桌面控制,来打开 SSH 隧道, 像我是搭建了 code-server,用的还是 root, 一旦暴露了,那 code-server 里就用终端可以做任何事了。
公网服务器
vim /etc/ssh/sshd_config
增加或修改: GatewayPorts yes
机器 A
开启
假设公网 IP 为192.168.3.4
ssh -fNTR 0.0.0.0:1111:localhost:22 root@192.168.3.4
需要输入公网服务器的密码
如果不是想 ssh 到机器 A,可以更换端口(上面实例的 22),来暴露其他服务。
关闭
ps -ef|grep "ssh -fNTR"
找到对应的 pid,假设是 1234
kill 1234
机器 B
ssh -p 1111 root@192.168.3.4
需要输入机器 A的密码(注意不是公网服务器的)
安全性
为了提高安全性,建议配置密钥登录,而不是密码登录
ssh 客户端生成密钥:ssh-keygen -t rsa -C "your@email.com"
把 ssh 客户端创建的公钥.pub文件内容贴到下面文件
ssh 服务端创建/修改文件:vim ~/.ssh/authorized_keys
This post is licensed under CC BY 4.0 by the author.