如何在Ubuntu上设置SSH服务器以支持远程登录?
目标
用另外一台电脑ssh访问Ubuntu系统的电脑
硬件及软件版本
被访问电脑 电脑:联想笔记本G470 系统:Ubuntu 16.04
客户端电脑 电脑:MBP 系统:10.15.2
准备
SSH
SSH 为Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他平台,都可运行SSH。-- 搜狗百科:SSH
目标分析
现在我们知道SSH其实最早是一个安全协议,这个协议就是为远程登录会话而生。因为这个协议,衍生的的SSH程序是我们要安装的软件。要利用SSH连接两台机器,可想可知一个要作为客户端访问,另外一台要作为服务端提供被访问的服务。我们也知道很多Linux、OSX等类Unix系统都已自带了SSH的客户端,Windows也有不少类似PuTTY这样优秀的软件。
So,我们接下来要做的其实是如何安装并开启SSH Server。
步骤
① 确定Ubuntu是否安装SSH服务
systemctl status ssh
比如,这台新系统的机器执行结果如下:
我们注意到两个内容,第一行 加载结果是 未发现,原因没有这个文件或目录,第二行 服务状态是不活跃的,死亡的。从这些词我们能猜到其实这个服务压根就没安装。
同理,假如你看到的状态是类似红色的stopped字样,是终止态的,可以用命令 sudo systemctl start ssh
尝试启动,执行结果也可以参考第③步。
② 安装SSH Server
sudo apt install openssh-server
执行过程如下
③ 确定Ubuntu SSH服务状态
systemctl status ssh
执行结果如下
现在能看到:
第一行加载状态,已加载ssh.service文件;
第二行是否活动,正在运行;并且留意到一个守护进程sshd;
再往下看到监听的端口是22。
至此,我们的SSH服务端已经安装启动OK。
④ 确定Ubuntu机器的IP
我们在局域网测试,那就是查看现在这台局域网IP,可以点击网络设置查看,亦或命令行 ifcofnig
如下图的一个参考,找到你活跃的网卡。比如这台机器的是 192.168.0.145
。
⑤ 确定是否可访问Ubuntu
ping 192.168.0.145
如果能ping通,这说明网络是通的,那么可以尝试第⑦步。
如果有类似
ssh: connect to host 192.168.0.145 port 22: Connection refused
这样的问题是说明端口不能访问,要检查下防火墙。
⑥ 若不能访问,检查Ubuntu防火墙
# 检查防火墙
sudo ufw status verbose
# 开启防火墙
sudo ufw enable
# 开放端口
sudo ufw allow 22
如下命令,可以设置开放来自某IP访问某端口的权限
sudo ufw allow from your_ip to any port 22
⑦ 使用账号密码登录Ubuntu
现在,使用另外一台电脑尝试登录 Ubuntu
ssh baiyutang@192.168.0.145 -p 22
对于第一次登陆的会提示主机不被认可,加密签名的指
输入 yes 确认,继续
需要验证 Ubuntu
当前用户 baiyutang
的登录密码,输入确认即可登录成功。
延伸
- openssh-server是什么?
Ubuntu Wiki OpenSSH Server About OpenSSH
- SSH服务端开放的端口可以更改吗?
可以,在文件
/etc/ssh/sshd_config
里可以配置 SSH Server 开放的端口,修改后记得sudo systemctl restart sshd
重启下生效。修改位置如下图第 5 行所示:
- ufw及基本的管理操作
Ubuntu防火墙设置可以单独抽出来讲,或者可以先看参考资料第四条。
- 如何使用公钥免密登录?
- SSH加密传输的过程原理?
- 加密签名指纹是什么?
这个等下篇专门来做记录,三个问题可以放在一起。
- 如何配置跳板机?
这个也后续单独做。
- 安全问题及中间人攻击
在参考第一条有讲到这个问题。
- 内网穿透是什么?
后续了解及研究,因为有段时间也在寻找和远程控制相关软件,可以作为研究课题。
参考
- ssh 基本原理和免密码登录
- 五条强化 SSH 安全的建议
- 牢记25个最佳的SSH命令
- 在Ubuntu中用UFW配置防火墙
- 在 Mac 上使用防火墙来防止非法连接