1、两台机器生成密钥文件
[root@node1 10:18:06~]#ssh-keygen #直接按 回车键
[root@zabbix 10:19:14~]#ssh-keygen #直接按 回车键
2、发送密钥文件:把查看到的内容 cat /root/.ssh/id_rsa.pub 复制粘贴到 vim /root/.ssh/authorized_keys 文件的最末尾
或者:echo 密钥内容 >> /root/.ssh/authorized_keys
3、重启sshd服务
4、安装软件:yum -y install autossh
或者:进入网站:https://fossies.org/linux/privat/ 找到autossh下载,然后编译安装
cilib-2.0.1.tar.gz (19 Mar 14:38, 88908 Bytes) CILib is a library of computational intelligence algorithms (written in Scala). | |
autossh-1.4f.tgz (20 Mar 17:01, 67128 Bytes) autossh automatically restarts SSH sessions and tunnels. | |
Time-HiRes-1.9758.tar.gz (21 Mar 21:48, 112920 Bytes) Time-HiRes - high resolution time, sleep, and alarm (Perl module). |
5、内网机器:[root@node1 10:18:06~]#autossh -M 1414 -NfR 14:localhost:22 root@12.20.10.11 -p 22
说明:-M参数,这个参数的意思就是用本机的1414端口来监听ssh,每当他断了就重新把他连起来。。。不过man文档中也说了,这个端口又叫echo port,他其实是有一对端口的形式出现,第二个端口就是这个端口号加一,也就是1515。因此我们要保证这个端口号和这个端口号加一的端口号不被占用。(来源于:https://www.jb51.net/article/112524.htm)
-f:后台执行
-N:做端口转发
-R:做反向ssh
14:localhost:22 14是把内网的端口映射到 外网的服务器上,localhost:内网主机IP,22:是内网ssh的端口
root@12.20.10.11 -p 22 root: 外网用户 @12.20.10.11 : 外网主机 -p 22 : 外网ssh端口
6、在内网查看:[root@node1 10:18:06~]# netstat -untpl | grep -E "1414|1415" 是否有相应的端口
7、在外网查看: [root@zabbix 10:19:14~]# netstat -untpl | grep 14 是否有相应的端口
8、在外网服务器上: [root@zabbix 10:19:14~]# ssh root@127.0.0.1 -p 14 这样就可以直接远程到内网服务器上了