SSH 免密登录配置与Permission denied (publickey,gssapi-with-mic,password)问题

背景

为了SSH的登录安全,将SSH配置为使用公私钥的方式进行登录

常规配置

配置SSH使用公私钥登录来实现免密的方法,减少了每次登录都需要输入复杂密码与登录的安全问题,配置过程如下

  1. 检查/etc/ssh/sshd_conf 的配置
    • PubkeyAuthentication yes # 启用pubkey认证
    • AuthorizedKeysFile .ssh/authorized_keys # 配置用户的认证公钥
    • PasswordAuthentication no # 禁用密码认证
  2. 使用ssh-keygen -t rsa -b 2048 生成密钥对,默认会在/home/{username}/.ssh目录下
    • 生成密钥时建议设置密钥的密码,防止密钥泄漏风险
  3. 密钥与权限配置
    • 将生成的公钥添加到.ssh/authorized_keys
    • 修改.ssh目录权限 chmod 0700 ~/.ssh chown {username}:{groupname} -R ~/.ssh
    • 修改authorized_keys文档权限 chmod 0600 ~/.ssh/authorized_keys
  4. 重启sshd服务使配置生效
  5. copy私钥文档客户端并妥善保存,将客户端的私钥文件权限设置成0600。这时就可以使用ssh username@host -i identityfile命令进行登录。

通过上面的配置基本就完成了SSH使用公私钥登录的配置。

问题检查

客户端登录提示: Permission denied (publickey,gssapi-with-mic)

  • 出现publickey通常是.ssh目录与authorized_keys文件配置的权限问题
  • 出现gssapi-with-mic是因为开启了gssapi功能,可以通过在sshd_config中关闭来解决
    • GSSAPIAuthentication no
    • GSSAPICleanupCredentials no
    • GSSAPIStrictAcceptorCheck no
    • GSSAPIKeyExchange no
  • 出现password是开启了密码登录,但密码认证失败

当我们关闭了gssapi认证,password认证登录方式,只开启pubkeyAuthentication时会提示:Permission denied (publickey),这里注意对认证的文件名,文件权限做仔细的检查,如果还是提示:Permission denied (publickey),可以通过restorecon -FRvv ~/.ssh命令恢复文件的安全上下文。

记录这遍文章的重点在于restorecon -FRvv ~/.ssh命令,上面的配置过程在网上也是在大堆,为了方便就在这里再次记录了。我实践时出现上面的问题的过程如下:

  • 服务器配置完成后就配置了公私钥登录,配置过程和上面相同,并没有遇到什么问题。
  • 因为断电导致服务异常关机,重新开机后通过公私钥登录开始提示:Permission denied (publickey,gssapi-with-mic)
  • 通过restorecon -FRvv ~/.ssh命令恢复文件的安全上下文解决问题

如果在实践中还遇到了需要记录的其它情况可以在通过评论,私信等方式告知我,将持续记录这一问题的解决方案。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值