【问题标题】:Passwordless keybased authentication in linux not workinglinux中基于无密码密钥的身份验证不起作用
【发布时间】:2018-04-26 05:33:24
【问题描述】:

我有服务器 A 和服务器 B。

我能够以“root”用户密码从服务器 A SSH 到服务器 B 不太成功。我在服务器 B 中有另一个非 root 普通用户,我的要求是使用该非 root 普通用户从服务器 A ssh 到服务器 B。

这就是我所做的; 1)将公钥从服务器A复制到服务器B的非root普通用户authorized_keys文件保存在非ro​​ot普通用户的.ssh目录中。 2)在服务器B上,给.ssh目录700权限,给authorized_keys文件600权限。

它仍在询问密码,它没有按预期工作(无密码)。

请帮忙。

仅供参考,从服务器 A 到服务器 B 的 root 用户登录工作完美无密码,我只按照上述步骤操作。惊讶地发现它不适用于普通用户。

【问题讨论】:

  • 如果您可以使用ssh root@serverB 并且无需输入密码即可使用,那么在serverB 上只需将~root/.ssh/authorized_keys 复制到~user/.ssh/authorized_keys 并使其可以被user 读取。
  • 亚历克斯,感谢您的回复。我尝试了您在此处提到的方法,但仍然没有运气。
  • 我在详细模式下运行 ssh 命令并执行以下操作 ]# ssh -v user@ipaddress OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 2013 年 2 月 11 日 读取配置数据 /etc/ssh/ssh_config应用选项 * 连接到 [] 端口 22。连接已建立。永久设置uid:0/0
  • 身份文件 /root/.ssh/id_rsa 类型 1 身份文件 /root/.ssh/id_rsa-cert 类型 -1 身份文件 /root/.ssh/id_dsa 类型 -1 身份文件 /root/ .ssh/id_dsa-cert type -1 身份文件 /root/.ssh/id_ecdsa type -1 身份文件 /root/.ssh/id_ecdsa-cert type -1 远程协议版本2.0,远程软件版本OpenSSH_5.3 匹配:OpenSSH_5。 3 拍 OpenSSH* 为协议 2.0 启用兼容模式 本地版本字符串 SSH-2.0-OpenSSH_5.3 SSH2_MSG_KEXINIT 已发送
  • SSH2_MSG_KEXINIT 收到 kex: server->client aes128-ctr hmac-md5 none kex: client->server aes128-ctr hmac-md5 none SSH2_MSG_KEX_DH_GEX_REQUEST(1024”是已知的,并且与 RSA 主机密钥匹配。在 /root/.ssh/known_hosts:221 ssh_rsa_verify 中找到密钥:签名正确 SSH2_MSG_NEWKEYS 发送预期 SSH2_MSG_NEWKEYS SSH2_MSG_NEWKEYS 已收到 SSH2_MSG_SERVICE_REQUEST 已发送 SSH2_MSG_SERVICE_ACCEPT 已收到

标签: linux ssh password-less


【解决方案1】:

我可以使用以下命令解决此问题;

restorecon -R -v /home/

我现在能够成功地为非 root 用户进行基于密钥的身份验证

【讨论】:

    【解决方案2】:

    在服务器 B 上,其他用户的 .ssh 目录权限为 755 ,而 authorized_keys 为 644 。这应该工作

    【讨论】:

      猜你喜欢
      • 2019-01-29
      • 2013-02-15
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      • 2012-11-03
      • 2015-12-08
      • 2021-02-09
      相关资源
      最近更新 更多