使用私钥的Jenkins发布ssh身份验证失败

时间:2014-03-12 08:10:55

标签: jenkins jenkins-plugins ssh-keys

我可以使用putty和密码短语在服务器上使用private key成功进行身份验证。但是当我尝试使用jenkins 通过SSH 插件发布(使用Test for configuration)时,我收到以下错误消息:

jenkins.plugins.publish_over.BapPublisherException: Failed to connect session for config myconfig. Message [Auth fail]

我输入了与putty相同的信息:

主机名:myhostname
用户名:myusername
远程目录

使用密码验证,或使用其他密钥密码短语/密码 密钥路径:已检查
密钥路径:mypath
密码短语:mypasssword

端口:22
超时(毫秒):300000

如果您有任何想法...... 谢谢你的帮助。

10 个答案:

答案 0 :(得分:10)

看起来您正在使用密钥文件身份验证,因此如果您未在.ssh文件夹和/或~/.ssh/authorized_keys文件上正确设置权限,则会从Jenkins收到此错误。

  • .ssh文件夹应具有drwx------权限(仅限读/写/执行所有者)
  • authorized_keys文件应具有-rw-------权限(仅限读/写所有者)

修复它:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

答案 1 :(得分:4)

今天我遇到了同样的问题,结果发现我不小心提供了公钥的路径,而不是私有

所以"键到#34;应该像

.ssh/id_rsa

而不是

.ssh/id_rsa.pub

答案 2 :(得分:2)

检查公钥是否在目标服务器上的.ssh/authorized_keys文件中,即使目标服务器与jenkins服务器相同也是如此。我有可能是同样的问题,事实证明我需要这个,即使ssh localhost工作正常。

(附录:还要检查jenkins服务器在其.ssh/known_hosts文件中是否有目标服务器,因为这也会对此产生影响。)

答案 3 :(得分:1)

我认为这是一个身份验证问题:

使用密码验证,或使用其他密钥 选择此选项将生成另外3个配置框,这些配置框将镜像Jenkins SSH Key可用的选项。

密码短语/密码 如果配置了密钥路径或密钥,则这是用于加密密钥的密码。 如果未配置密钥,则此密码将用于密码验证。

密钥路径 见上面的描述。

的 见上面的描述。

禁用exec 此选项将删除使用此配置执行命令的功能。

LINK HERE

答案 4 :(得分:1)

因为您的linux登录需要密码,答案是:

 1. Passphrase: your passphrase
 2. path to key: your private key path
 3. key : blank
 4. Disable exec : un-check

SSH服务器

1. Name: remote_user@remotehost.com
 2. hostname: remotehost.com
 3. Username: remote_user
 4. Remote Directory: empty

高级 -

5. check the box "use passsword authentication, or use a different key"
    `important`

 6. Passphrase / Password: your linux login password`important`

 7. path to key: blank

 8. key:blank

 9. port: 22

 10. Timeout(ms): 300000

'测试配置' 成功

答案 5 :(得分:0)

我面临同样的问题,以下步骤对我有用: - (我正在使用jenkins 1.57)

  1. 转到http:/// jenkins / manage
    1. 配置系统
    2. 浏览到通过SSH发布部分
      • 密码:空白
      • 密钥路径:空白
      • key:blank
      • 禁用exec:取消选中
      • SSH服务器 - 姓名:remote_user@remotehost.com - 主机名:remotehost.com - 用户名:remote_user - 远程目录:空 - 高级 - 选中方框"使用密码认证,或使用其他密钥" - 港口:22 - 超时(ms):300000 - '测试配置'
  2. 成功

答案 6 :(得分:0)

尝试重新启动远程服务器的ssh

        /etc/init.d/sshd restart

答案 7 :(得分:0)

请勿执行任何ssh-keygen。只需在“密钥”字段下输入pem密钥详细信息, 添加SSH服务器详细信息:名称,主机名和用户名作为ec2-user。 点击测试连接即可。

答案 8 :(得分:0)

如果目标服务器没有足够的磁盘空间来执行PUT操作,有时SSH连接将会失败

{ERROR: Exception when publishing, exception message [Failure]}

请确保确认目标服务器有足够的磁盘空间。

对于Linux,您可以使用'df -kh / directoryname'检查磁盘空间

答案 9 :(得分:0)

只需将jenkins用户的id_rsa.pub复制到远程主机上〜/ .ssh / authorized_keys的末尾。