作为系统 admin,您需要能够与网络上的其他系统通信以共享数据。 您可以在 Linux 中使用 ssh 命令执行此操作。 它是 Linux 系统中的命令行实用程序,可将您的系统连接到远程主机。
什么是SSH?
ssh 实用程序代表“安全外壳”。 它是一种数据传输协议,旨在安全地加密和在两个系统之间传输数据。
它使用三种主要方法对要传输的数据进行加密:对称加密、非对称加密和单向散列。 这些可以防止您的数据泄露。 此外,它有助于验证您收到的数据的真实性。 默认情况下,ssh 连接是使用 TCP/IP 在端口 22 上形成的。
Ubuntu 18.04 默认存储库预装了 OpenSSH 客户端软件包。 我们将通过在命令行中键入以下内容来验证它。
ssh -V
如果您看到类似于以下内容的输出,则您的系统上安装了 OpenSSH 客户端。
如果不存在,可以通过在终端中输入以下内容轻松安装 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/known_hosts 文件中。 Enter ‘yes’ 保存远程主机的指纹。 然后系统会提示您输入密码。
2. 在不同端口上通过 SSH 连接
您不会总是希望通过端口 22 路由所有 ssh 流量。因此,能够使用不同的端口连接到远程主机是有意义的。 现在让我们连接到允许在端口 2222 上连接的不同服务器。但是,这次我们将使用端口 8080 进行连接。 Enter 在您的终端中执行以下命令来执行此操作。
ssh -p 2222 [email protected]
笔记: 在这个测试服务器的情况下,如果您看到访问 shell 的请求失败,就像上面的屏幕截图一样。 它是一个公共服务器,在安全方面没有意义,允许访问 web 上的 shell 界面。 如果您连接到您知道的服务器,您将拥有远程机器的外壳。
3.在远程服务器上执行命令
在 Linux 中使用 ssh 命令连接到远程主机后,您可以使用终端上允许的任何命令。 是什么让它与众不同呢? 那么,在这种情况下,您使用的命令将在远程主机上执行,而不是在您的本地机器上。 这允许您访问机器,即使您不在其所在位置。 这适用于您在命令行中可用的每个命令。
结论
ssh 命令用于通过网络连接到远程主机。 虽然 telnet 可用,但 ssh 由于其加密而比其他协议安全得多。 我们希望本教程能够帮助您理解 Linux 中的 ssh 命令。 在接下来的教程中,我们将介绍如何为您经常连接的 SSH 服务器设置无密码登录。