我可以使用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
如果您有任何想法...... 谢谢你的帮助。
答案 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 此选项将删除使用此配置执行命令的功能。
答案 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)
成功
答案 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的末尾。