Ubuntu如何配置SSH服务端支持远程登录

14,229 阅读4分钟

目标

用另外一台电脑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

比如,这台新系统的机器执行结果如下:

image.png

我们注意到两个内容,第一行 加载结果是 未发现,原因没有这个文件或目录,第二行 服务状态是不活跃的,死亡的。从这些词我们能猜到其实这个服务压根就没安装。
同理,假如你看到的状态是类似红色的stopped字样,是终止态的,可以用命令 sudo systemctl start ssh 尝试启动,执行结果也可以参考第③步。

② 安装SSH Server

sudo apt install openssh-server

执行过程如下

image.png
image.png

③ 确定Ubuntu SSH服务状态

systemctl status ssh

执行结果如下

image.png

现在能看到:
第一行加载状态,已加载ssh.service文件;
第二行是否活动,正在运行;并且留意到一个守护进程sshd;
再往下看到监听的端口是22。

至此,我们的SSH服务端已经安装启动OK。

④ 确定Ubuntu机器的IP

我们在局域网测试,那就是查看现在这台局域网IP,可以点击网络设置查看,亦或命令行 ifcofnig 如下图的一个参考,找到你活跃的网卡。比如这台机器的是 192.168.0.145

image.png

⑤ 确定是否可访问Ubuntu

ping 192.168.0.145


image.png

如果能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

image.png

⑦ 使用账号密码登录Ubuntu

现在,使用另外一台电脑尝试登录 Ubuntu

ssh baiyutang@192.168.0.145 -p 22

对于第一次登陆的会提示主机不被认可,加密签名的指

image.png

输入 yes 确认,继续
需要验证 Ubuntu 当前用户 baiyutang 的登录密码,输入确认即可登录成功。

image.png

延伸

  • openssh-server是什么?

Ubuntu Wiki OpenSSH Server About OpenSSH

  • SSH服务端开放的端口可以更改吗?

可以,在文件 /etc/ssh/sshd_config 里可以配置 SSH Server 开放的端口,修改后记得 sudo systemctl restart sshd 重启下生效。修改位置如下图第 5 行所示:

image.png

  • ufw及基本的管理操作

Ubuntu防火墙设置可以单独抽出来讲,或者可以先看参考资料第四条。

  • 如何使用公钥免密登录?
  • SSH加密传输的过程原理?
  • 加密签名指纹是什么?

这个等下篇专门来做记录,三个问题可以放在一起。

  • 如何配置跳板机?

这个也后续单独做。

  • 安全问题及中间人攻击

在参考第一条有讲到这个问题。

  • 内网穿透是什么?

后续了解及研究,因为有段时间也在寻找和远程控制相关软件,可以作为研究课题。

参考

  1. ssh 基本原理和免密码登录
  2. 五条强化 SSH 安全的建议
  3. 牢记25个最佳的SSH命令
  4. 在Ubuntu中用UFW配置防火墙
  5. 在 Mac 上使用防火墙来防止非法连接