SSH为建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议。但在没有公网IP的环境下,只能在同个局域网下远程。
本篇教程主要实现通过内网穿透,在公网环境下SSH远程登录内网的Ubuntu主机,突破局域网的限制,无需公网IP,也不用设置路由器,操作简单。
telnet 127.0.0.1 22
如果本地电子设备中安装了SSH,则会连接上该端口的设备;但如果没有安装SSH,则会显示如下信息:
sudo apt-get install openssh-server
并在命令确认时输入“y”,确定在Ubuntu系统中安装SSH
telnet 127.0.0.1 22
就能看到Ubuntu系统已经显示出端口22的反馈信息(如果Ubuntu系统中安装了SSH,也会显示此信息)
ifconfig
在同个局域网内通过另一台设备测试SSH远程
ssh (Ubuntu系统主机名称)@(Ubuntu的IP地址)
windows系统询问是否连接时输入yes
至此实现了在局域网内SSH远程,如果不在同个局域网想要实现SSH远程,可以用cpolar内网穿透来映射22端口,并通过所生成的公网地址来实现公网远程连接。
cpolar支持http/https/tcp协议,可以永久免费使用,不限制流量,目前还支持21天退款保证。
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
curl -sL https://git.io/cpolar | sudo bash
cpolar version
登录cpolar官网后台——验证,查看自己的认证token,之后将token贴在命令行里
cpolar authtoken xxxxxxx(xxx替换为你的token码)
sudo systemctl enable cpolar
sudo systemctl start cpolar
sudo systemctl status cpolar
若正常显示如下信息,就说明cpolar配置成功。
在浏览器上访问本地9200端口(127.0.0.1:9200),使用cpolar账号登录进入cpolar web ui管理界面【如果你还没注册cpolar账号,到cpolar官网注册使用邮箱注册一个就可以了】
cpolar内网穿透官网:https://www.cpolar.com/
cpolar默认会安装两个样例隧道,一个是Website隧道指向http 8080端口,一个是ssh隧道,指向tcp 22端口【可自行删减或者修改】
我们可以直接使用默认安装的样例隧道,或者重新创建隧道来映射:
点击左侧仪表盘的隧道管理
——创建隧道
填写隧道信息:
tcp
协议22
随机临时TCP端口
China VIP
或者China
点击创建
隧道创建成功后,我们可以在左侧仪表盘的状态
——在线隧道列表
查看到所生成的公网地址。或者登录cpolar官网后台——状态进行查看所有在线隧道,将公网地址复制下来。
ssh -p XXXXX 用户名@1.tcp.cpolar.io
如:
ssh -p 23501 root@1.tcp.cpolar.io
其中,X为cpolar生成的端口号,用户名需替换为Ubuntu主机用户名)。需要注意的是,在数字端口号之前,需要添加“(空格)-p(空格)”参数,否则无法连接隧道;其次是“ssh -p XXXXX 用户名@”之后,必须输入复制客户端生成的tcp地址。
由于使用免费的cpolar所生成的公网地址为随机临时地址,会24小时变化,对于需要长期远程的用户来讲十分不方便,因此配置使用固定的TCP端口地址是非常必要的。
首先需要将cpolar升级为专业版套餐或以上,支持配置固定的TCP端口地址,同时带宽也会增大3倍,为3M带宽,使用更为稳定。
点击登录进入cpolar官网——后台,点击左侧的预留
,找到保留的TCP地址
,我们来为SSH远程Ubuntu保留一个固定的TCP端口:
china VIP
填写完成后,点击右侧的保留
固定TCP端口地址保留成功后,会生成相应的公网地址,将其复制下来
访问本地9200端口,登录cpolar web ui管理界面。
点击左侧的隧道管理
——隧道列表
,找到SSH远程Ubuntu的隧道,并点击右侧的编辑
修改隧道信息:
固定TCP端口
点击更新
在公网环境下SSH远程连接内网Ubuntu
ssh -p XXXXX 用户名@1.tcp.vip.cpolar.cn(X为cpolar生成的固定端口号,用户名替换为主机用户名)
如:
ssh -p 13456 root@1.tcp.vip.cpolar.cn
SSH远程连接Ubuntu成功,后续不必再查看随机变化的公网地址再进行远程了,只要保持被控端Ubuntu主机以及ssh隧道正常在线,就可以在外随时随地远程内网的Ubuntu了。
下一篇:【安全目标】