如何在 Linux 中使用 SSH 命令连接到远程主机?

作为系统 admin,您需要能够与网络上的其他系统通信以共享数据。 您可以在 Linux 中使用 ssh 命令执行此操作。 它是 Linux 系统中的命令行实用程序,可将您的系统连接到远程主机。

什么是SSH?

ssh 实用程序代表“安全外壳”。 它是一种数据传输协议,旨在安全地加密和在两个系统之间传输数据。

它使用三种主要方法对要传输的数据进行加密:对称加密、非对称加密和单向散列。 这些可以防止您的数据泄露。 此外,它有助于验证您收到的数据的真实性。 默认情况下,ssh 连接是使用 TCP/IP 在端口 22 上形成的。

Ubuntu 18.04 默认存储库预装了 OpenSSH 客户端软件包。 我们将通过在命令行中键入以下内容来验证它。

ssh -V 

如果您看到类似于以下内容的输出,则您的系统上安装了 OpenSSH 客户端。

SSH 版本

如果不存在,可以通过在终端中输入以下内容轻松安装 OpenSSH 包:

sudo apt install openssh-client 

安装完成后,您可以按照教程的其余部分进行操作。 根据命令的最近更新,我们使用 apt 而不是 apt-get 。 apt 命令效率更高,并且可以更好地将所有内容集中在一个地方。

Linux 中 SSH 命令的语法

理解任何命令的最好方法是理解它的语法。 Linux 中 ssh 命令的语法如下所示。

ssh [option] [user]@[server_address] 

在这里,服务器地址可以是您要连接的远程主机的地址,也可以是您的远程主机的 IP 地址。 Linux 中的 ssh 命令允许多个选项来指示您如何连接到远程主机。 以下是 Linux 中 ssh 命令提供的一些常用选项的列表。

选项 影响
-4 / -6 指定在创建 ssh 连接时只允许 IPv4(用于 -4)/IPv6(用于 -6)地址的 ssh 命令。
-一个 指定在创建 ssh 连接时应启用身份验证代理连接转发的 ssh 命令。 应谨慎使用此选项。
-一个 此选项用于指定在创建 ssh 连接时应禁用身份验证代理连接转发的 ssh 命令。 这是 ssh 命令的默认选项。
-C 通过 SSH 连接时启用数据压缩。 如果您使用缓慢的网络,这会很有帮助。
-E 日志文件名 将调试日志输出到指定的输出文件
-p 端口号 当远程 SSH 服务器不在默认端口上侦听时指定自定义端口号

在大多数情况下,除了上面列出的选项之外,您永远不会使用任何其他选项,因为我们只想与远程计算机建立安全连接,而这些选项将帮助您实现结果。

使用 SSH 命令

现在我们已经为 ssh 命令的内容和可用的不同选项打下了坚实的基础,我们可以继续使用系统上的命令连接到远程主机。

请注意,要在 Linux 中使用 ssh 命令,主机系统需要有一个正在运行的 ssh 服务器,并且应该为传入连接打开所需的端口。

1. 访问远程主机

Linux 中 ssh 命令最基本的用途是连接到远程主机。 在本教程中,我们将使用 Rebex 提供的用户 shell 服务。 该命令应如下所示。

ssh [email protected] 
  • 用户名: 演示
  • 密码: 密码
演示 SSH

首次连接服务器时,系统会询问您是否要保存主机指纹。 每个主机都有唯一的指纹。 您系统中所有已知主机的指纹都存储在 ~/.ssh/known_hosts 文件中。 Enter ‘yes’ 保存远程主机的指纹。 然后系统会提示您输入密码。

2. 在不同端口上通过 SSH 连接

您不会总是希望通过端口 22 路由所有 ssh 流量。因此,能够使用不同的端口连接到远程主机是有意义的。 现在让我们连接到允许在端口 2222 上连接的不同服务器。但是,这次我们将使用端口 8080 进行连接。 Enter 在您的终端中执行以下命令来执行此操作。

ssh -p 2222 [email protected] 
SSH 端口更改SSH 端口更改

笔记: 在这个测试服务器的情况下,如果您看到访问 shell 的请求失败,就像上面的屏幕截图一样。 它是一个公共服务器,在安全方面没有意义,允许访问 web 上的 shell 界面。 如果您连接到您知道的服务器,您将拥有远程机器的外壳。

3.在远程服务器上执行命令

在 Linux 中使用 ssh 命令连接到远程主机后,您可以使用终端上允许的任何命令。 是什么让它与众不同呢? 那么,在这种情况下,您使用的命令将在远程主机上执行,而不是在您的本地机器上。 这允许您访问机器,即使您不在其所在位置。 这适用于您在命令行中可用的每个命令。

结论

ssh 命令用于通过网络连接到远程主机。 虽然 telnet 可用,但 ssh 由于其加密而比其他协议安全得多。 我们希望本教程能够帮助您理解 Linux 中的 ssh 命令。 在接下来的教程中,我们将介绍如何为您经常连接的 SSH 服务器设置无密码登录。