如何在 Ubuntu 20.04 LTS 中使用 SSH 连接到远程服务器

SSH(代表安全外壳)是一种用于安全访问远程系统的协议。 它是 Linux 系统中最常用的协议,用于远程管理、管理和排除远程服务器故障。

本文是关于如何通过 SSH 远程连接到 Linux Server。 我们将使用 OpenSSH 实用程序通过 SSH 进行远程连接。

先决条件

以下是通过 SSH 进行远程连接必须完成的一些先决条件:

  • 两台 Ubuntu 机器(用于远程服务器和客户端)
  • 服务器和客户端机器上的 Sudo 用户
  • 远程服务器的 IP 地址或主机名
  • 远程服务器的端口号、用户名和密码

SSH Linux 服务器

为了SSH Linux系统,涉及的步骤是:

  1. 在远程服务器上安装 OpenSSH
  2. 在远程服务器上配置 OpenSSH
  3. 在本地客户端机器上安装 OpenSSH 客户端
  4. 通过 SSH 客户端访问远程 Linux 服务器

笔记: 此处讨论的命令已在 Ubuntu 20.04 LTS 上进行了测试。

第 1 步:在远程服务器上安装 OpenSSH

OpenSSH 是一个通过 SSH 远程连接系统的工具。 您需要将它安装在要通过 SSH 访问的系统上。

在远程服务器上,打开终端并发出以下命令:

$ sudo apt update

然后为了安装 OpenSSH 服务器,在终端中发出以下命令:

$ sudo apt install openssh-server

然后输入 sudo 密码。

当要求确认时,点击 是的,之后系统将开始安装。

第 2 步:在远程服务器上配置 OpenSSH

OpenSSH 安装完成后,您将需要执行一些必要的配置。 SSH 配置文件是 /etc/ssh/sshd_config. 要编辑配置文件,请在终端中发出以下命令:

$ nano /etc/ssh/sshd_config

这是 OpenSSH 配置文件的样子:

在对此文件进行任何更改之前,最好使用以下命令制作原始配置文件的副本:

$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

我们将只配置一些选项,而将其余选项保留为默认值。

更改 SSH 监听端口

默认情况下,OpenSSH 在 TCP 端口 22 上运行。但是,如果您希望 OpenSSH 服务器侦听其他端口(端口号 1024 – 65535 之间),您可以执行以下操作:

编辑 /etc/ssh/sshd_config 配置文件:

$ sudo nano /etc/ssh/sshd_config

定位’端口 22′ 在文件中。 您可以使用 Ctrl+W 进行搜索。

代替 22 通过您希望 OpenSSH 服务器侦听的端口号。 此外,删除 # 行前的符号。

例如,要将 OpenSSH 侦听端口设置为 2244,该行将是:

port 2244

现在保存配置文件。

在 SSH 服务器上启用 root 登录

默认情况下,OpenSSH 服务器禁用 root 登录,这意味着您无法以 root 用户身份登录。 如果您需要以 root 用户身份登录远程 SSH 服务器,则需要在 Open SSH 配置中启用 root 登录。

编辑 /etc/ssh/sshd_config 配置文件:

$ sudo nano /etc/ssh/sshd_config

定位 PermitRootLogin 禁止密码 并将其替换为以下行。 此外,删除 # 行前的符号。

PermitRootLogin yes

现在保存配置文件。

减少身份验证尝试次数

缺省情况下,允许登录 SSH 服务器的身份验证尝试 6 次。 您可以通过更改参数的值来减少这些身份验证尝试 MaxAuthTries.

例如,为了减少身份验证尝试的次数 3编辑 /etc/ssh/sshd_config 配置文件:

$ sudo nano /etc/ssh/sshd_config

然后定位 MaxAuthTries 并将其值更改为 3.

此外,删除 # 行前的符号。

MaxAuthTries 3

现在保存配置文件。

允许或拒绝某些用户登录 SSH 服务器

默认情况下,允许所有用户帐户通过 SSH 登录远程系统。 为了只允许某些用户登录到 SSH 服务器,编辑 /etc/ssh/sshd_config 文件:

$ sudo nano /etc/ssh/sshd_config

然后通过替换在此文件中添加以下行 用户1用户2 与允许登录的用户的名称。

AllowUsers user1 user2

例子:

AllowUsers kbuzdar 锡

上述行将允许“kbuzdar”和“tin”通过 SSH 登录。

同样,要拒绝任何用户访问 SSH 服务器,请在此文件中添加以下行,方法是替换 用户1用户2 带有不允许登录的用户名。

DenyUsers user1 user2

上述行将允许除 ‘john’ 之外的所有用户通过 SSH 登录。

现在,保存配置文件。

对配置文件进行任何更改后,使用以下命令重新启动 SSH 服务:

$ sudo service ssh restart

第 3 步:在本地客户端机器上安装 OpenSSH 客户端

在想要通过 SSH 连接到 Linux 服务器的客户端机器上,我们需要安装 OpenSSH 客户端实用程序。

要安装 OpenSSH 客户端,请在客户端计算机的终端中发出以下命令:

$ sudo apt install openssh-client

当被要求输入密码时,提供 sudo 密码。

当要求确认时,点击 是的,之后系统将开始安装。 安装完成后,您就可以使用 OpenSSH 客户端了。

第 4 步:通过 LAN 上的 SSH 客户端访问 Linux 服务器

通过 OpenSSH 客户端,您可以使用 IP 地址或主机名通过 LAN 连接到 SSH 服务器。 在客户端机器上,使用以下语法通过 SSH 连接远程服务器:

$ ssh [username]@[remoteserver IP or hostname]

当提示输入密码时,输入用户的密码。 建立连接后,您将看到远程服务器的 shell 提示符。

在我们的例子中,远程服务器的 IP 是“192.168.72.157”,用户名是“kbuzdar”。 因此,命令将是:

$ ssh [email protected]

如果您更改了 OpenSSH 侦听端口,那么连接到 SSH 服务器的命令将是:

$ ssh -p [port_number] [username]@[ip_address]

例子:

$ ssh -p 2244 [email protected]

通过 SSH 客户端通过 Internet 访问 Linux 服务器

为了通过 Internet 连接远程服务器,您将需要远程服务器的公共 IP,并且您还需要在路由器上设置端口转发。 以下是如何通过 Internet SSH 远程服务器的步骤:

1. 首先,您需要找出远程服务器的公共 IP 地址。 为此,请在远程机器的终端中发出以下命令:

$ curl ipaddr.pub

2. 现在,您需要在路由器上设置转发。 如何设置它因路由器而异,但几乎所有路由器都允许您这样做。

3. 找到远程机器的公共 IP 地址并在路由器上设置端口转发后,使用以下语法对远程 Linux 机器进行 SSH:

$ ssh [username]@[public_ip_address]

如果远程服务器配置为使用 22 以外的端口号,则语法为:

$ ssh -p [port_number] [username]@[public_ip_address]

这就是你可以 SSH Linux 服务器的方式。 我们已经解释了如何使用 OpenSSH 实用程序对远程 Linux 服务器进行 SSH 连接。 我们还讨论了一些在通过 SSH 连接时可能有用的基本配置。 现在,您可以轻松管理远程 Linux 服务器以进行管理和故障排除。