云计算百科
云计算领域专业知识百科平台

手把手教你实现 Linux 服务器间免密登录!别再输密码了,太 Low​

今天手把手教你配置 Linux 服务器间的免密登录,学会了这招,别人还在敲密码的时候,你已经优雅地完成了十台服务器的部署。​

为什么要免密登录?​

传统的 SSH 登录每次都要输入密码,这在单台服务器上问题不大,但当你要管理几十上百台服务器,或者需要编写自动化脚本批量执行命令时,密码就成了拦路虎。免密登录基于 SSH 密钥对认证,公钥丢给目标服务器,私钥自己留着,每次登录就像刷脸一样,安全又高效。​

环境准备​

假设你有两台 Linux 服务器:​

  • 客户端(发起登录的机器):192.168.1.100​
  • 服务端(被登录的机器):192.168.1.101​

确保两台机器都安装了 OpenSSH 服务(绝大多数 Linux 发行版默认安装)。​

生成 SSH 密钥对​

生成密匙对

登录客户端服务器,执行以下命令生成密钥对:​

ssh-keygen -t rsa

一路回车使用默认配置,会在用户主目录下的.ssh文件夹生成两个文件:​

  • id_rsa:私钥(打死不能泄露!)​
  • id_rsa.pub:公钥(可以随意分发)​
分发公钥到服务端​

将客户端的公钥追加到服务端的authorized_keys文件中​

使用 ssh-copy-id

如果你安装了ssh-copy-id工具(CentOS/RHEL 需要先安装openssh-clients包),直接执行:​

ssh-copy-id username@192.168.1.101

输入服务端的密码,公钥就会自动写入。​

测试免密登录​

在客户端执行:​

ssh username@192.168.1.101

如果成功登录且没有提示输入密码,恭喜你,配置成功!​

常见问题排查​
  • 权限问题:~/.ssh目录权限必须是 700,authorized_keys权限必须是 600,否则 SSH 会拒绝认证。​
  • 密钥格式错误:确保authorized_keys文件中每行一个公钥,且格式正确。​
  • SELinux 或防火墙:如果是 CentOS/RHEL,检查 SELinux 策略或防火墙是否拦截了 SSH 连接。​
  • 进阶技巧​

    • 多台服务器互信:重复上述步骤,让所有服务器互相持有对方公钥。​
    • 密钥对管理:定期更新密钥,避免长期使用同一套密钥带来安全风险。​

    别再让密码拖慢你的脚步,赶紧把这套免密登录配置玩明白。下次有人还在手动敲密码,你就可以优雅地甩出一句:“还在输密码?格局小了!”

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 手把手教你实现 Linux 服务器间免密登录!别再输密码了,太 Low​
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!