Secure Shell 协议是通过客户端/服务器应用程序与远程机器连接的常用方法。 它利用诸如 ssh、scp 和 sftp 等工具集来确保安全的身份验证过程和随后的加密通信。 因此,这些工具取代了其他较旧的远程命令执行工具集,例如 telnet、rcp 和 rlogin。
在本指南中,您将学习如何在您的机器中安装和启用 OpenSSH 服务器/客户端服务。 它还涵盖了访问和远程管理系统以及在它们之间传输文件所需的所有命令(SSH 工具)。
SSH 入门
默认情况下,大多数 Linux 系统包括 ssh 客户端和服务器应用程序。 RHEL 中包含 ssh 工具的软件包和 Fedora 发行版是 openssh、openssh-server 和 openssh-client。 使用 格雷普 从已安装列表中获取 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 [email protected]
以本地用户身份远程登录:
ssh localhost
如果您是第一次登录远程服务器,它会提示您确认与系统连接,输入 是的 并键入用户帐户密码。
登录后,您可以继续执行远程命令,因为它与常规登录类似,唯一的区别是远程通信是加密的。
完成后,键入 出口 命令终止会话并返回到您的本地系统。 如果失败 close 远程外壳 ~。 键也执行类似的任务并输出“与 XXXX 的连接已关闭”。
远程执行
ssh 命令允许在远程系统上执行命令并在本地机器上返回输出。 例如,
以下命令以用户身份运行 乌本图 在远程服务器上并返回 主机名:
ssh [email protected] 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 /tmp
这也支持递归复制,这意味着您可以为命令提供一个目录,并将所有文件/文件夹从层次结构向下复制到另一个本地目录。
scp -r localhost:/home/ubuntu/ /tmp
您还可以使用 scp 命令进行文件和目录备份,但出于以下几个原因,rsync 是更好的备份实用程序:
- scp 无法保留文件/目录权限和时间/日期。
- 它也无法识别已经复制的文件和目录。
现在列出上述目录的内容查看文件权限和创建时间,如下:
ls -l /etc/demo /tmp/demo
重复上面的 scp 命令并重新列出目录以检查它是否从其时间戳替换已复制的文件/目录:
这 -p 标志 因为 scp 命令可能有助于保留时间戳或写入权限,但它仍会替换已复制的文件。 为了克服这些缺点,使用 rsync 作为备份工具。 先删除文件 /tmp 目录以继续下面的示例。 将 rsync 命令与 -一个 递归归档标志和 -v 详细复制选项 /home/ubuntu/演示 文件到 /tmp 目录,如下:
rsync -av [email protected]:/home/ubuntu/demo /tmp
列出 /tmp 目录以注意它如何保留文件或目录创建的时间。
最后,重新运行 同步 命令来验证它不复制任何文件。
了解 SSH
本文是 Linux 服务器远程管理最广泛使用的协议的指南。 我们展示了如何使用最重要的 SSH 命令以及一些提示和技巧来简化文件复制和管理任务。
开始了解 SSH 命令/工具及其功能可以改变您对系统/服务器管理的看法,因为它不仅可以解锁 SSH 的功能,还可以解锁 Linux 终端的功能。 它是一个功能强大的工具,可提供相当大的安全性,以及更多先进的功能,无法在单个指南中涵盖。