SSH连接提示“Permission denied (publickey,password)”

问题:

        使用Jenkins,ssh到指定服务器执行脚本时,当SSH连接提示“Permission denied (publickey,password)”时,通常是因为远程服务器未能验证提供的公钥,可能是因为公钥没有被正确添加到远程服务器的~/.ssh/authorized_keys文件中。

步骤:将公钥添加到远程服务器

1. 获取公钥
  • 在Jenkins中,gcleyser对应的证书包含私钥(id_rsa)和公钥(id_rsa.pub)。
  • 需要从Jenkins凭据管理中获取公钥文件内容。
2. 将公钥添加到authorized_keys
  •  登录到host_name服务器,以下命令来添加公钥:
ssh-copy-id -i /path/to/your/publickey user@host_name
  • 如果你手动添加,可以按以下步骤进行:

  • 手动步骤

    • 在本地找到你的公钥文件(通常是id_rsa.pub,或从Jenkins中复制)。

    • 使用SSH登录到host_name服务器:

ssh user@host_name
  • 创建.ssh目录并设置正确的权限:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
  • 将公钥添加到authorized_keys文件中:

echo "your-public-key-content" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
  • 确保~/.ssh目录和authorized_keys文件的权限设置正确,以避免权限错误。

  • 另:也可能 authorized_keys 文件已经存在,略过已经步骤,直接把证书追加进去即可。

3. 测试连接
  • 在Jenkins中再次运行Pipeline,检查是否能够成功连接。

其他注意事项:

  • 公钥内容:确保将完整的公钥内容复制到authorized_keys文件中,避免多余的换行或空格。
  • 权限设置

        ~/.ssh目录和authorized_keys文件的权限设置非常重要。

        ~/.ssh目录应为700权限,authorized_keys文件应为600权限。

  • 无需密码验证:完成这些步骤后,user@host_name应能够基于公钥验证SSH连接,而不需要密码。

-----------------------------------  常规分割线----------------------

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值