Secure Shell(SSH)是用于客户端和服务器之间安全连接的网络协议。 服务器与客户端之间的每次交互均被加密。

本教程介绍了如何在Ubuntu计算机上启用SSH。

启用SSH将使您可以远程连接到系统并执行管理任务。 您还可以通过 scp sftp 安全的传输文件。

在Ubuntu上启用SSH

默认情况下,首次安装Ubuntu时,不允许通过SSH进行远程访问。 在Ubuntu上启用SSH非常简单。

以root用户或具有sudo特权的用户执行以下步骤,以在Ubuntu系统上安装并启用SSH:Ctrl+Alt+T打开终端并安装openssh-server软件包:

sudo apt update
sudo apt install openssh-server

出现提示时,输入密码并按 输入以继续安装。

安装完成后,SSH服务将自动启动。 您可以通过键入以下内容来验证SSH是否正在运行:

sudo systemctl status ssh

输出应告诉您该服务正在运行并已启用,可以在系统引导时启动:

● ssh.service - OpenBSD Secure Shell server
    Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
    Active: active (running) since Mon 2020-06-01 12:34:00 CEST; 9h ago
...

q返回命令行提示符。

Ubuntu附带了一个称为UFW的防火墙配置工具。 如果在系统上启用了防火墙,请确保打开SSH端口:

sudo ufw allow ssh

现在,您可以从任何远程计算机通过SSH连接到Ubuntu系统。 Linux和macOS系统默认情况下安装了SSH客户端。 要从Windows计算机连接,请使用SSH客户端,例如 PuTTY

连接到SSH服务器

要通过LAN连接到Ubuntu计算机,请调用 ssh命令,然后输入用户名和IP地址,格式如下:

ssh username@ip_address

请确保将username更改为实际用户名,将ip_address更改为安装SSH的Ubuntu计算机的IP地址。

如果您不知道自己的IP地址,则可以使用 ip命令轻松找到它:

ip a

从输出中可以看到,系统IP地址为10.0.2.15

找到IP地址后,通过运行以下 ssh 命令登录到远程计算机:

ssh myfreax@10.0.2.15

第一次连接时,您会看到以下消息:

The authenticity of host '10.0.2.15 (10.0.2.15)' can't be established.
ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY.
Are you sure you want to continue connecting (yes/no)?

输入yes,系统会提示您输入密码。

Warning: Permanently added '10.0.2.15' (ECDSA) to the list of known hosts.
myfreax@10.0.2.15's password:

输入密码后,系统会为您提供默认的Ubuntu消息:

Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-26-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
...

您现在已登录到Ubuntu计算机。

在NAT后连接到SSH

要通过Internet连接到家用Ubuntu计算机,您需要知道您的公网IP地址,并将路由器配置为在端口22上接受数据并将其发送到运行SSH的Ubuntu系统。

要确定您要SSH连接的计算机的公共IP地址,只需访问以下URL: https://api.ipify.org

设置端口转发时,每个路由器都有不同的方式来设置端口转发。 您应该查阅路由器文档,以了解如何设置端口转发。 简而言之,您需要输入进行请求的端口号(默认SSH端口为22)和您先前在运行SSH的计算机上找到的私有IP地址(使用ip a命令)。

找到IP地址并配置路由器后,您可以通过输入以下内容登录:

ssh username@public_ip_address

如果要将机器暴露在Internet上,则最好实施一些安全措施。 最基本的方法是将路由器配置为在非标准端口上接受SSH流量,并将其转发到运行SSH服务的计算机上的端口22。

您也可以设置基于SSH密钥的身份验证,然后无需输入密码即可连接到Ubuntu计算机。

在Ubuntu上禁用SSH

要在您的Ubuntu系统上禁用SSH服务器,只需运行以下命令即可停止SSH服务:

sudo systemctl disable --now ssh

以后,要重新启用它,请输入:

sudo systemctl enable --now ssh

结论

我们向您展示了如何在Ubuntu 20.04上安装和启用SSH。 现在,您可以登录计算机并通过命令提示符执行日常sysadmin任务。

如果要管理多个系统,则可以通过在 SSH配置文件中定义所有连接来简化工作流程。 更改默认的SSH端口,可以降低自动攻击的风险,从而为系统增加了一层安全保护。

有关如何配置SSH服务器的详细信息,请阅读Ubuntu的 SSH / OpenSSH / Configuring 指南和官方SSH手册页。

如有任何疑问,请在下面发表评论。