Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

12.3. OpenSSH 客户端

要从客户端机器连接到 OpenSSH 服务器,您必须安装 openssh-clients 软件包(有关如何在 Red Hat Enterprise Linux 中安装新软件包的更多信息,请参阅 第 9.2.4 节 “安装软件包” )。

12.3.1. 使用 ssh 实用程序

ssh 实用程序允许您登录远程计算机并在其中执行命令。它是 rloginrshtelnet 程序的安全替代品。

telnet 命令类似,使用以下命令登录到远程机器:

ssh hostname

例如,要登录到名为 penguin .example.com 的远程机器,在 shell 提示符后输入以下内容:

~]$ ssh penguin.example.com

这将使用与本地计算机上使用的相同用户名登录。如果要指定不同的用户名,请使用以下格式的命令:

ssh username@hostname

例如,要以 USER 身份登录 penguin.example.com,请输入:

~]$ ssh USER@penguin.example.com

第一次启动连接时,您将会看到类似如下的消息:

The authenticity of host 'penguin.example.com' can't be established.
ECDSA key fingerprint is SHA256:vuGKK9dsW34zrZzwjl5g+vOE6EZQvHRQ8zObKYO2mW4.
ECDSA key fingerprint is MD5:7e:15:c3:03:4d:e1:dd:ee:99:dc:3e:f4:b9:67:6b:62.
Are you sure you want to continue connecting (yes/no)?

用户在回答此对话框中的问题之前,应始终检查指纹是否正确。用户可以要求服务器管理员确认密钥正确。这应该以安全的方式完成,并且先前已达成一致。如果用户可以访问服务器的主机密钥,可以使用 ssh-keygen 命令检查指纹,如下所示:

~]# ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
SHA256:vuGKK9dsW34zrZzwjl5g+vOE6EZQvHRQ8zObKYO2mW4
注意

要获得 MD5 密钥指纹(这是之前版本中的默认指纹),请使用带有 -E md5 选项的 ssh-keygen 命令,例如:

~]# ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub -EM md5
MD5:7e:15:c3:03:4d:e1:dd:ee:99:dc:3e:f4:b9:67:6b:62

键入 yes 以接受密钥并确认连接。您将看到一个通知,显示该服务器已添加到已知主机列表中,并看到一个提示您输入密码:

Warning: Permanently added 'penguin.example.com' (ECDSA) to the list of known hosts.
USER@penguin.example.com's password:
重要

如果 SSH 服务器的主机密钥发生更改,客户端会通知用户连接无法进行,直到从 ~/.ssh/known_hosts 文件中删除服务器的主机密钥为止。但是,在进行此操作前,请先联系 SSH 服务器的系统管理员来验证服务器是否未被破坏。

要从 ~/.ssh/known_hosts 文件中删除密钥,请使用以下命令:

~]# ssh-keygen -R penguin.example.com
# Host penguin.example.com found: line 15 type ECDSA
/home/USER/.ssh/known_hosts updated.
Original contents retained as /home/USER/.ssh/known_hosts.old

输入密码后,系统将为您提供用于远程计算机的 shell 提示符。

另外,ssh 程序 可用于在远程机器上执行命令,而无需登录到 shell 提示符:

ssh username@hostname command

例如,/etc/redhat-release 文件提供有关 Red Hat Enterprise Linux 版本的信息。要在 penguin. example.com 中查看此文件的内容,请输入:

~]$ ssh USER@penguin.example.com cat /etc/redhat-release
USER@penguin.example.com's password:
Red Hat Enterprise Linux Server release 7.0 (Maipo)

输入正确的密码后,将显示用户名,您将返回到本地 shell 提示符。

12.3.2. 使用 scp 实用程序

SCP 可用于通过 安全、加密的连接在计算机之间传输文件。在设计中,它与 rcp 非常相似。

要将本地文件传输到远程系统,请使用以下格式的命令:

scp localfile username@hostname:remotefile

例如,如果要将 taglist.vim 传送到名为 penguin .example.com 的远程机器,在 shell 提示符后输入以下内容:

~]$ scp taglist.vim USER@penguin.example.com:.vim/plugin/taglist.vim
USER@penguin.example.com's password:
taglist.vim                  100% 144KB 144.5KB/s  00:00

可以同时指定多个文件.要将 .vim/plugin/ 的内容传输到远程机器 penguin .example.com 上的同一目录中,请输入以下命令:

~]$ scp .vim/plugin/* USER@penguin.example.com:.vim/plugin/
USER@penguin.example.com's password:
closetag.vim                 100%  13KB 12.6KB/s  00:00
snippetsEmu.vim                100%  33KB 33.1KB/s  00:00
taglist.vim                  100% 144KB 144.5KB/s  00:00

要将远程文件传输到本地系统,请使用以下语法:

scp username@hostname:remotefile localfile

例如,要从远程机器下载 .vimrc 配置文件,请输入:

~]$ scp USER@penguin.example.com:.vimrc .vimrc
USER@penguin.example.com's password:
.vimrc                    100% 2233   2.2KB/s  00:00

12.3.3. 使用 sftp 实用程序

sftp 实用程序可用于打开安全、交互式 FTP 会话。在其设计中,它类似于 ftp,除了使用安全加密的连接。

要连接到远程系统,请使用以下格式的命令:

sftp username@hostname

例如,使用用户名 USER 登录名为 penguin .example.com 的远程机器,请输入:

~]$ sftp USER@penguin.example.com
USER@penguin.example.com's password:
Connected to penguin.example.com.
sftp>

输入正确的密码后,您将会看到一个提示。sftp 实用程序接受一组与 ftp 所用命令类似的命令(请参阅 表 12.3 “系列可用的 sftp 命令”)。

表 12.3. 系列可用的 sftp 命令

命令描述

ls [目录]

列出远程目录的内容.如果没有提供,则默认使用当前工作目录。

cd directory

将远程工作目录更改为 目录

mkdir directory

创建远程目录.

rmdir 路径

删除远程目录.

put localfile [remotefile]

localfile 传输到远程计算机。

get remotefile [localfile]

从远程计算机传输 remotefile.

有关可用命令的完整列表,请查看 sftp(1)手册页。