SSH(Secure Shell)常用于加密远程登录与文件传输。密钥登录用一对数学相关的密钥替代频繁输入密码, 在自动化与服务器运维中极为常见。
1. 公钥与私钥
- 私钥:必须保密,通常保存在本机用户目录,权限应收紧(如仅所有者可读)。
- 公钥:可公开,放在服务器的
authorized_keys列表中。
认证思路可通俗理解为:服务器用公钥出一道「只有对应私钥能答」的题,从而确认连接者身份。
2. 首次连接时的主机指纹
客户端会提示服务器的主机密钥指纹,用于降低中间人攻击风险。 重要环境应通过可信渠道核对指纹后再写入 known_hosts;盲目接受未知指纹存在风险。
3. 与 Git、SFTP 的关系
许多代码托管平台支持用 SSH 地址克隆仓库;SFTP 常作为 SSH 子系统提供文件传输。 同一私钥若泄露,可能影响所有信任该密钥的服务器与账号,故需配合口令保护私钥或硬件令牌。
算法与密钥长度会随安全实践演进;生成新密钥时请遵循当前组织或发行版推荐(如 ed25519、适当长度的 RSA)。