1.前言
- SSH 是一种网络协议,用于计算机之间的加密登录;
- 如果一个用户从本地计算机,使用 SSH 就可以实现协议登录另一台远程计算机;
- 一般认为,这种登录是安全的,即使被中途截获,密码也不会泄露;
- 本文介绍的方法,是通过配置 内外网映射条件,实现在 外网环境 下远程 ssh 登录 Ubuntu 主机。
2.环境
- 被连接服务器:macOS Sierra 10.12.6
- 发起登录主机:windows 10
- 网络环境:外网
3.工具
- xshell;
- ssh 协议;
4.配置 Ubuntu
- 在 Ubuntu 主机上安装 openssh-server & openssh-client;
sudo apt-get update # 更新 apt-get 工具
sudo apt-get install openssh-server
sudo apt-get install openssh-client
- 配置 sshd_config 文件;
sudo apt-get install vim # 安装 vim 编辑器,如已安装请掠过
sudo vim /etc/ssh/sshd_config
进入 vim 编辑器界面后,修改如下配置;
Port 22 # 默认22端口,如果有端口占用可以自己修改
PermitRootLogin yes # 如果配置文件中没有这行内容,需要手动添加
PasswordAuthentication yes # 密码验证登录
- 启动 ssh 服务;
sudo service ssh start
- 查看 ssh 服务运行状态;
ps -aux | grep ssh
得到下图,表示 ssh 服务已在运行;
也可使用 netstat 查看 ssh 状态;
netstat -a | grep ssh
得到下图,表示 ssh 服务已在运行;
5.配置路由映射
- 打开浏览器,登录 192.168.1.1 网络管理界面;
- 依次找到 高级设置→ 高级用户→虚拟服务器→添加,点击 添加;
- 在外部端口输入外部端口号,可以自由定义比如 8888、9999等;
- 在内部端口号一栏输入 22,这里的 22 即为 ssh 服务端口号;
6.登录连接
- 查看 Ubuntu 主机的外网 IP 地址;
sudo apt install curl # 安装 curl,如已存在则略过
curl ifconfig.me
得到 Ubuntu 本机的外网 IP 地址,为 XXX.XXX.XXX.XXX;
- 打开 scureCRT 建立 ssh 连接;