系统管理入门 - 关于 SSH
内容提要
SSH通常指OpenSSH,它加密所有流量以防窃听和劫持。基本用法包括:用ssh-keygen生成RSA密钥对,设置强密码短语,并将私钥加入ssh-agent;通过ssh-copy-id或手动复制公钥到服务器authorized_keys实现免密登录;在~/.ssh/config中配置别名、通配符及保活、压缩等选项。安全建议:务必设密码短语,并考虑更改默认22端口。
延伸解读
密钥对认证为何更安全
文章指出,用户识别有两种方式:密码和密钥对,后者更安全。密钥对包含私钥和公钥,私钥必须妥善保管,不能泄露。生成密钥对时使用ssh-keygen命令,并设置强密码短语,这样即使私钥被盗,攻击者也难以使用。将私钥加入ssh-agent可以方便管理,避免每次输入密码短语。
免密登录的实现原理
免密登录的本质是将本地公钥内容复制到服务器的~/.ssh/authorized_keys文件中。Linux用户可使用ssh-copy-id命令,Mac用户可安装该命令或手动通过cat和ssh组合完成。这样服务器就能识别持有对应私钥的用户,无需输入密码即可登录,既方便又比密码认证更安全。
SSH配置文件的实用技巧
在~/.ssh/config中可以为常用连接设置别名,简化命令输入。配置支持通配符,例如Host *compute-1.amazonaws.com可匹配所有EC2实例。文章还提到可添加TCPKeepAlive、ServerAliveInterval等选项保持连接活跃,启用压缩和代理转发等功能,提升使用体验。
安全加固建议
文章强调务必为私钥设置密码短语,否则可能从内存中被窃取。此外,考虑更改SSH默认的22端口,以减少自动化攻击的风险。虽然更改端口并非绝对安全,但能降低被扫描的概率。这些措施结合密钥认证,能显著提升SSH连接的安全性。
Q&A
SSH 通常指的是什么?它有什么作用?
SSH 通常指 OpenSSH,是一个免费的 SSH 连接工具。它加密所有流量(包括密码),能有效消除窃听、连接劫持等攻击,并提供安全隧道功能和多种认证方式,支持所有 SSH 协议版本。
如何生成 SSH 密钥对?
使用命令 `ssh-keygen -t rsa -C "your_email@example.com"` 生成 RSA 密钥对,其中 `-t` 指定加密类型,`-C` 添加注释。按回车选择默认保存路径,然后设置一个强密码短语。生成后会在 `~/.ssh/` 目录下得到私钥 `id_rsa` 和公钥 `id_rsa.pub`。
如何实现 SSH 免密登录?
将公钥内容复制到服务器的 `~/.ssh/authorized_keys` 文件中。Linux 用户可使用 `ssh-copy-id user@machine`;Mac 用户可安装 `ssh-copy-id` 或执行 `cat ~/.ssh/id_rsa.pub | ssh user@machine "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"`。
如何为 SSH 连接设置别名以简化操作?
在本地 `~/.ssh/config` 文件中添加配置,例如:`Host matrix`、`HostName <域名或IP>`、`User <用户名>`、`IdentityFile </私钥路径>`。还支持通配符,如 `Host *compute-1.amazonaws.com` 可匹配所有 EC2 实例。
SSH 配置文件中可以添加哪些常用选项来增强功能?
可以添加 `TCPKeepAlive=yes`、`ServerAliveInterval=15`、`ServerAliveCountMax=6`、`StrictHostKeyChecking=no`、`Compression=yes`、`ForwardAgent=yes`、`RSAAuthentication=yes`、`PasswordAuthentication=yes` 等选项。
使用 SSH 时有哪些安全建议?
务必设置密码短语,否则密钥可能从内存中被窃取。此外,考虑更改默认的 22 端口,以提升安全性。