SSH 免密登录配置实战
在日常运维或开发协作中,频繁输入密码不仅繁琐,还容易出错。通过配置 SSH 免密登录,我们可以实现安全的自动化交互。下面以 Linux 环境为例,分享具体的操作步骤。
1. 生成密钥对
首先切换到用户主目录,检查是否存在 .ssh 文件夹:
cd ~
ls -al
如果没有 .ssh 目录,通常是因为从未进行过 SSH 连接。此时可以先尝试访问任意一台机器(例如 ssh target_host),系统会自动创建该目录。
接着生成密钥对,推荐使用 RSA 算法:
ssh-keygen -t rsa
执行后按三次回车即可,无需额外设置密码短语(passphrase)以便脚本调用。生成完成后,你会看到两个关键文件:
id_rsa:私钥,务必妥善保管,切勿泄露。id_rsa.pub:公钥,用于分发给目标服务器。
2. 分发公钥
使用 ssh-copy-id 命令是最便捷的方式,它会自动处理权限问题并将公钥追加到目标服务器的 authorized_keys 文件中。
假设目标主机名为 hadoop203,执行以下命令:
ssh-copy-id hadoop203
首次连接时,系统会提示确认指纹并输入目标主机的密码。验证通过后,再次尝试 SSH 登录该主机,即可发现无需输入密码。
注意:如果需要配置本机也能免密登录自己(例如某些脚本场景),只需将目标主机名改为当前主机名即可,流程同上。
3. Root 用户配置
若需要以 root 身份进行免密登录,操作逻辑一致,但需注意权限切换:
su root
ssh-keygen -t rsa
ssh-copy-id hadoop203
同样,首次连接仍需验证密码。配置完成后,root 用户之间即可实现无缝跳转。
小结
配置完成后,建议测试一下连接稳定性。如果遇到权限拒绝(Permission denied),请检查目标服务器上 ~/.ssh 目录权限是否为 700,authorized_keys 文件权限是否为 600。
这样就能高效地管理多台服务器了。


