了解如何通过 SSH 管理远程连接

Secure Shell 协议是通过客户端/服务器应用程序连接远程机器的常用方法。 它利用 ssh、scp 和 sftp 等工具集来确保安全的身份验证过程和随后的加密通信。 因此,这些工具取代了其他较旧的远程命令执行工具集,例如 telnet、rcp 和 rlogin。

在本指南中,您将学习如何在您的机器上安装和启用 OpenSSH 服务器/客户端服务。 它还涵盖了访问和远程管理系统以及在两者之间传输文件所需的所有命令(SSH 工具)。

SSH 入门

默认情况下,大多数 Linux 系统都包含 ssh 客户端和服务器应用程序。 RHEL 中包含 ssh 工具的软件包和 Fedora 发行版是 openssh、openssh-server 和 openssh-client。 使用 grep 从已安装列表中获取 ssh 工具的命令:

yum list installed | grep openssh

虽然 Ubuntu 只包含一个 openssh-client 包,但它还包含一个 openssh 包。 使用 grep 命令列出 Ubuntu 中的 openssh 包,如下:

sudo dpkg --list | grep openssh

sudo apt-get install openssh-server

启动/启用 SSH 服务

openssh 服务的管理可能因发行版而异,并且无论默认配置如何,它都不会自动启动。 使用以下命令集确保服务在您的 Linux 机器上启动并运行:

systemctl status sshd.service #for Fedora and RHEL
systemctl status ssh #for Ubuntu

如果没有运行,检查服务状态如下:

systemctl start sshd.service #for Fedora and RHEL
systemctl ssh start #for Ubuntu

要在系统启动后立即启动 openssh-server:

systemctl enable sshd.service
systemctl ssh enable

如何使用 SSH 客户端工具

在使用 SSH 协议进行 Linux 系统远程访问的许多其他工具中,最常用的是用于远程代码执行和登录的 ssh 命令,其中 scp 和 rsync 在客户端和服务器之间复制一个或多个文件时很有用。

本节详细介绍了上述用于有效远程管理的命令。

远程登录

SSH 是您最常用于远程配置运行 sshd 服务的 Linux 服务器的命令。 使用 ssh 命令验证您是否可以登录到您的 Linux 服务器执行命令。

您可以使用另一台 Linux 机器登录到您的服务器,或者您可以通过在您的服务器上模拟它来了解它 本地主机 如下:

远程登录到 XXXX 的 Ubuntu 帐户(其中 XXXX 是远程设备的 IP 地址):

ssh ubuntu@X.X.X.X

对于以本地用户身份远程登录:

ssh localhost

如果你是第一次登录远程服务器,它会提示你确认连接系统,输入 是的 并键入用户帐户密码。

登录后,您可以继续执行远程命令,因为它类似于常规登录,唯一的区别是远程通信是加密的。

完成后,键入 出口 命令终止会话并返回到本地系统。 如果未能 close 远程外壳 ~。 键也执行类似的任务并输出“与 XXXX 的连接已关闭”。

远程执行

ssh 命令允许在远程系统上执行命令并在本地机器上返回输出。 例如,

以下命令以用户身份运行 ubuntu 在远程服务器上并返回 主机名

ssh ubuntu@X.X.X.X hostname

要执行包含选项或标志的命令,请将其括在双引号中,如下所示:

ssh [email protected] "cat /tmp/new_file"

上面的命令在本地屏幕上返回上述文件的内容。

您还可以通过在服务器上启用 X11 转发来运行多个命令,而无需每次都重新连接。 打开 sshd_config 里面的文件 /etc/ssh 目录和设置 X11 转发是的 如下:

现在运行如下命令:

ssh -X [email protected] hostname & cat /tmp/new_file/ & exit

通过 scp 和 rsync 进行文件复制

scp 命令允许您将文件从远程传输/复制到本地系统,反之亦然。 它的功能类似于 rcp 命令,但使用 RSA 加密通信。 下面是一些例子。

复制 文件 来自 /etc/演示 远程机器的目录到它的 /tmp 文件夹如下:

scp [email protected]:/home/ubuntu/demo/file /tmpstrong>  strong>

这也启用了递归复制,这意味着您可以为命令提供一个目录,并将所有文件/文件夹沿层次结构复制到另一个本地目录。

scp -r localhost:/home/ubuntu/ /tmp

您也可以使用 scp 命令备份文件和目录,但 rsync 是更好的备份实用程序,原因如下:

  • scp 无法保留文件/目录权限和时间/日期。
  • 它也无法识别已复制的文件和目录。

现在列出以上目录的内容,查看文件权限和创建时间,如下:

ls -l /etc/demo /tmp/demo

重复上面的 scp 命令并重新列出目录以检查它是否从其时间戳中替换了已复制的文件/目录:

-p 标志 因为 scp 命令可能有助于保留时间戳或写入权限,但它仍会替换已复制的文件。 为了克服这些缺点,使用 rsync 作为备份工具。 先删除文件 /tmp 目录继续 example 以下。 将 rsync 命令与 -一种 递归归档的标志和 -v 用于详细复制的选项 /home/ubuntu/演示 文件到 /tmp 目录,如下:

rsync -av [email protected]:/home/ubuntu/demo /tmp

列出 /tmp 目录以注意它如何保留文件或目录创建的时间。

最后,重新运行 rsync 命令来验证它不会复制任何文件。

了解 SSH

本文是用于远程管理 Linux 服务器的最广泛使用的协议的指南。 我们展示了如何使用最重要的 SSH 命令以及一些技巧和窍门来简化文件复制和管理任务。

开始了解 SSH 命令/工具及其功能可以改变您对系统/服务器管理的看法,因为它不仅解锁了 SSH 的功能,还解锁了 Linux 终端的功能。 它是一个强大的工具,提供了相当大的安全性,以及更高级的功能,无法在单个指南中涵盖。