引言
工作中,经常有未完成的工作需要回家继续,或者现场有就地服务器需要访问操作,teamviewer有时非授权版会出现种种问题,本文提供一种方法,通过云跳板机实现ssh访问内网固定ip的机器功能。
环境和配置
现场就地服务器local:
- 内网ip: 192.168.1.133
- 主机名:prs3000
- 操作系统:CentOS Linux release 7.4.1708 (Core)
- ssh端口: 22, 2222
云服务器cloud:
- ip: 139.196.177.89
- 主机名:iZ1125fdjfrZ
- 操作系统:CentOS release 6.8 (Final)
- ssh端口: 26150
工作机器user:
- ip: 不重要
- 主机名:不重要
- 操作系统:Mac OS
就地服务器配置
ssh配置
安装openssh,配置ssh端口(默认是22,为了安全考虑,更改为2222)
cd /etc/ssh
ls
gedit sshd_config
如图开放2222端口:
Protocol 2: 开放2个ssh端口(22和2222)
保存,重启sshd服务
systemctl restart sshd
# centos 7启动service和centos 6有区别,systemctl
验证就地机器local是否ssh开放成功,在局域网内输入:
ssh [email protected] -p 2222
可以登录表示验证成功。
配置local到cloud的免秘登陆
配置key: dms为local机器用户,prs3000为local机器hostname
ssh-keygen -t 'rsa' -b '4096' -C 'dms@prs3000'
拷贝key到cloud机器准许列表
ssh-copy-id [email protected] -p 26150
输入yes一路回车
开启sshd
输入
autossh -p 26150 -M 5678 -fCNR '139.196.177.89:26001:localhost:2222' [email protected] -i /home/dms/.ssh/id_rsa
# 26150 cloud服务器ssh端口
# fCNR 区分大小写
# -f 静默运行。
# -C 数据压缩,网速快不要加。
# -N 不执行任何指令。
# -R 使用远程端口转发。
#5678 cloud服务器监视端口
#26001 指定的cloud服务器访问端口,可以看作把local服务器的2222端口映射到了cloud服务器26001
#localhost 也可以输入local机器ip地址
#[email protected] cloud服务器登陆账户和ip
# /home/dms/.sshd/id_rsa dms是local机器用户
启动后查询服务是否运行
ps aux|grep autossh
如图:
云服务器配置
修改sshd文件
cloud服务器配置的项目很少,修改ssh配置文件
vi /etc/ssh/sshd_config
如图:
开放端口
开放5678和26001端口(26001为例)
# 增加26001端口
/sbin/iptables -I INPUT -p tcp --dport 26001 -j ACCEPT
#保存
/etc/init.d/iptables save
#重启
service iptalbes restart
#查看所有端口状态
/etc/init.d/iptables status
#查看单一端口状态
lsof -i tcp:26001
查看单一端口状态
登陆
在自己电脑上,打开终端,输入:
ssh [email protected] -p 26001
即可ssh访问local机器