Linux配置SSH公钥认证进行Jenkins的远程免密登陆自动发布
说明:公钥认证是使用一组加密的字符串进行验证,一个称为公钥(public key),一个称为私钥(private key),公钥暴露出去,任何人都能看到,用于加密;而私钥是拥有者持有,用于解密。
Linux配置步骤
- 生成钥匙
ssh-keygen -t rsa -P ''
在Jenkins服务器上执行命令可以生成一组公钥密钥id_rsa , id_rsa_pub,目录为 ~/.ssh;-P 后面的’’ (两个单引号)表示密码为空
- 把公钥发送到目标服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub <USER>@<IP>
把公钥文件发送到指定的ip服务器的指定用户下,在目标服务器的~/.ssh下能看到,成功后就可以使用ssh 进行免密远程连接。(看到下面的话表示成功)
Now try logging into the machine, with "ssh 'remote-host'", and check in:.
ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.
- 配置过程问题处理
- 发送公钥时失败
如果发送公钥的是root用户,可能是目标服务器禁止通过ssh登陆root,修改sshd_config配置,把PermitRootLogin改为yes,然后重启配置使其生效
vim