ssh通过公钥在CentOS 6上帐户失败,用户ID低于500

时间:2014-06-27 15:07:52

标签: linux security ssh centos public-key-encryption

我转换了由jenkins CI服务器安装创建的非登录用户jenkins,以允许通过执行以下操作登录:

  1. 在/ etc / passwd文件中为jenkins用户添加主目录和shell
  2. 创建主目录
  3. 然后我通过

    创建了一个公共私钥对
    1. 添加了公共&新家庭空间中.ssh目录中的私钥
    2. 已创建并已授权_keys文件
    3. 为.ssh目录和内容设置正确的权限。
    4. 现在,在机器上,我可以su - jenkins成为jenkins用户。但是,在远程计算机上,我不能使用公共密钥ssh到这台机器(作为具有相应密钥的jenkins用户)。

      我通过useradd在机器上创建了一个新用户,将jenkins ssh密钥复制到此帐户,并且能够使用密钥以此用户身份登录。

      我完全不知道jenkins用户可能阻止ssh公钥访问的特殊情况。在我脑海中唯一突出的是jenkins用户 使用用户ID 498创建。阻止'系统'用户阻止ssh吗?

      启用-v的ssh命令结束登录失败,因为用户jenkins看起来像这样:

       debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
       debug1: Next authentication method: publickey
       debug1: Trying private key: id_rsa
       debug1: read PEM private key done: type RSA
       debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
       debug1: No more authentication methods to try.
       Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
      

      以用户foo成功登录(使用相同的密钥):

       debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
       debug1: Next authentication method: publickey
       debug1: Trying private key: id_rsa
       debug1: read PEM private key done: type RSA
       debug1: Authentication succeeded (publickey).
       Authenticated to jenkins.internal.nara.me ([54.83.203.146]:22).
       debug1: channel 0: new [client-session]
       debug1: Requesting no-more-sessions@openssh.com
       debug1: Entering interactive session.
       debug1: Sending environment.
       debug1: Sending env LANG = en_US.UTF-8
      

1 个答案:

答案 0 :(得分:1)

你可能会遗漏这些内容:

  • 您的jenkins用户的主目录的权限不正确(不属于用户,或世界或群组可写
  • ssh不允许某些用户使用基于密钥的身份验证
  • 在authorized_keys文件中有意外的carrigae-return

调试此问题,使用

重新加载sshd
LogLevel VERBOSE
中的

并查看/var/log/auth.log(或等效的centos)以获取有关为何不接受此密钥的信息。在详细模式下,sshd总是说出原因;)