一、实现步骤概览
二、实现步骤具体操作
1. 安装 autossh (树莓派端)
sudo apt-get install autossh
2. 生成ssh-key,开启免密登录(树莓派端)
2.1 生成 key
1 | ssh-keygen |
输入以上命令,然后一路Enter
,最后会在 ~/.ssh/ 下生成key。
2.2 拷贝到云主机
1 | ssh-copy-id -i username@云主机-ip |
2.3 拷贝public key,以备后续使用。
1 | cat ~/.ssh/id_rsa.pub |
选择、复制。
3. 配置免密登录(云服务端)
其实在第二步中拷贝 ssh key 到云应该就OK了,但在腾讯云主机上发现不行,需要在控制台手动添加ssh key,然后再绑定 key 到相应实例,此过程需要重启。
4. 测试能否通过ssh 免密登陆云主机(树莓派端)
1 | ssh username@云主机-ip |
如果能免密登录,则进行后续操作,否则查找原因,直到能正常登录为止。
5. 安装 autossh 守护进程服务 (树莓派端)
下载已经整理好的的脚本(Github地址),修改里面的云主机 username 和 IP, 然后 sudo ./install.sh
安装服务。
下面重点介绍下 autosshd.sh
脚本,代码如下:
1 | #!/bin/bash |
-M $local_port
参数为本机(树莓派)监视ssh状态的端口。
$remote_port:localhost:22
是把云主机的端口(rmote_port )映射到本机(树莓派)的 22 端口,即 ssh 端口。
如果没有使用配置文件可以直接填写端口值就OK了,如:
1 | /bin/su -c "/usr/bin/autossh -M 12020 -o "ExitOnForwardFailure=yes" -NR 120201:localhost:22 root@111.231.221.20" - pi |
6. 远程登录树莓派
6.1 使用任意 PC 登录云主机
6.2 在云主机里使用 ssh -p 120201 pi@localhost
注:为了避免每次密码也可以将云主机的key,ssh-copy-id到树莓派(参考前面第二步)。