个人练手与前端学习用,非正式站点。

← 文章列表

SSH 密钥与远程登录:公钥为何能代替密码

SSH(Secure Shell)常用于加密远程登录与文件传输。密钥登录用一对数学相关的密钥替代频繁输入密码, 在自动化与服务器运维中极为常见。

1. 公钥与私钥

  • 私钥:必须保密,通常保存在本机用户目录,权限应收紧(如仅所有者可读)。
  • 公钥:可公开,放在服务器的 authorized_keys 列表中。

认证思路可通俗理解为:服务器用公钥出一道「只有对应私钥能答」的题,从而确认连接者身份。

2. 首次连接时的主机指纹

客户端会提示服务器的主机密钥指纹,用于降低中间人攻击风险。 重要环境应通过可信渠道核对指纹后再写入 known_hosts;盲目接受未知指纹存在风险。

3. 与 Git、SFTP 的关系

许多代码托管平台支持用 SSH 地址克隆仓库;SFTP 常作为 SSH 子系统提供文件传输。 同一私钥若泄露,可能影响所有信任该密钥的服务器与账号,故需配合口令保护私钥或硬件令牌。

算法与密钥长度会随安全实践演进;生成新密钥时请遵循当前组织或发行版推荐(如 ed25519、适当长度的 RSA)。