第 1 章 使用 OpenSSH 的两个系统间使用安全通讯
SSH(Secure Shell)是一种协议,它使用客户端-服务器架构在两个系统之间提供安全通信,并允许用户远程登录到服务器主机系统。与其他远程通信协议(如 FTP 或 Telnet )不同,SSH 会加密登录会话,这可防止入侵者从连接中收集未加密的密码。
1.1. SSH 和 OpenSSH 复制链接链接已复制到粘贴板!
SSH(安全 Shell)是一个登录远程机器并在该机器上执行命令的程序。SSH 协议通过不安全的网络在两个不可信主机间提供安全加密的通讯。您还可以通过安全频道转发 X11 连接和任意 TCP/IP 端口。
当使用 SSH 协议进行远程 shell 登录或文件复制时,SSH 协议可以缓解威胁,例如,拦截两个系统之间的通信和模拟特定主机。这是因为 SSH 客户端和服务器使用数字签名来验证其身份。另外,所有客户端和服务器系统之间的沟通都是加密的。
主机密钥验证使用 SSH 协议的主机。当 OpenSSH 首次启动或当主机首次引导时,主机密钥是自动生成的加密密钥。
OpenSSH 是 Linux、UNIX 和类似操作系统支持的 SSH 协议的实现。它包括 OpenSSH 客户端和服务器需要的核心文件。OpenSSH 组件由以下用户空间工具组成:
-
ssh是一个远程登录程序(SSH 客户端). -
sshd是一个 OpenSSH SSH 守护进程。 -
scp是一个安全的远程文件复制程序。 -
sftp是一个安全的文件传输程序。 -
ssh-agent是用于缓存私钥的身份验证代理。 -
ssh-add为ssh-agent添加私钥身份。 -
ssh-keygen生成、管理并转换ssh验证密钥。 -
ssh-copy-id是一个将本地公钥添加到远程 SSH 服务器上的authorized_keys文件中的脚本。 -
ssh-keyscan可以收集 SSH 公共主机密钥。
RHEL 中的 OpenSSH 套件仅支持 SSH 版本 2。它有一个增强的密钥交换算法,其不会受到旧版本 1 中已知漏洞的攻击。
Red Hat Enterprise Linux 包括以下 OpenSSH 软件包:常规 openssh 软件包、openssh-server 软件包和 openssh-clients 软件包。OpenSSH 软件包需要 OpenSSL 软件包 openssl-libs,它会安装几个重要的使 OpenSSH 可以提供加密通信的加密库。
OpenSSH 作为 RHEL 的核心加密子系统之一,使用系统范围的加密策略。这样可确保在默认配置中禁用弱密码套件和加密算法。要修改策略,管理员必须使用 update-crypto-policies 命令来调整设置,或者手动选择不使用系统范围的加密策略。如需更多信息,请参阅 从以下系统范围加密策略中排除一个应用程序 部分。
OpenSSH 套件使用两组配置文件:一个用于客户端程序(即 ssh、scp 和 sftp),另一个用于服务器( sshd 守护进程)。
系统范围的 SSH 配置信息保存在 /etc/ssh/ 目录中。/etc/ssh/ssh_config 文件包含客户端配置,/etc/ssh/sshd_config 文件是默认的 OpenSSH 服务器配置文件。
用户特定的 SSH 配置信息保存在用户主目录中的 ~/.ssh/ 中。有关 OpenSSH 配置文件的详细的列表,请查看您系统上 sshd (8) 手册页中的 FILES 部分。