版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011870280/article/details/83021946
家里有两台树莓派平时在外面想访问下
首先启用服务器端GatewayPort来使远程网卡可以绑定,设置连接保持
vim /etc/ssh/sshd_config
#修改以下属性
GatewayPorts yes
ClientAliveInterval 60
ClientAliveCountMax 3
#然后退出vim编辑器,重新加载sshd配置
service sshd reload
建立远程端口转发隧道
ssh -N -f -p 远程ssh端口 -R 远程网卡:远程要暴露的端口:本机网卡:本机要转发的端口 root@远程host
如果不想手动输入密码可以用expect或者ssh-keygen
expect如下
#!/usr/bin/expect
spawn ssh -N -f -p 远程ssh端口 -R 远程网卡:远程要暴露的端口:本机网卡:本机要转发的端口 root@远程host
expect "password:"
send "密码\r"
expect eof
ssh-keygen如下
ssh-keygen -t rsa
#然后将公钥传到远程机器
ssh-copy-id -p 远程ssh端口 -i ~/.ssh/id_rsa.pub root@远程host
然后还可以用autossh来自动重连
autossh -p 远程端口 -M 自动重连监听端口 -NR 代理端口:127.0.0.1:被代理端口 root@host
然后如果有防火墙还得开启下端口
#开启防火墙
systemctl start firewalld.service
#开机启动防火墙
systemctl enable firewalld.service
#开启端口
firewall-cmd --zone=public --add-port=端口/tcp --permanent
#重新加载配置
firewall-cmd --reload
#查看端口是否开启
firewall-cmd --zone=public --query-port=端口/tcp