首先在容器中生成 rsa 密钥:
- # 从宿主机客户进入容器, 目前容器名 lnmp-jenkins, 也可通过 docker ps 查看
- $ docker exec -it lnmp-jenkins /bin/bash
- # 进入容器后建立. SSH 目录, 创建密钥文件私钥 id_rsa, 公钥 id_rsa.pub
- ~ mkdir ~/.SSH && cd ~/.SSH
- ~ SSH-keygen -t rsa
- # 一直回车即可
添加公钥到宿主机
将 id_rsa.pub 中字符串添加到 authorized_keys 文件末尾, 重启 SSH 服务 sudo service SSH restart
注意宿主机是否开启 SSH 服务.
可以在容器终端中使用下面的命令添加到宿主机中. 也可手动复制 id_rsa.pub 到宿主机的. SSH/authorized_keys 文件中.
SSH-copy-id -i ~/.SSH/id_rsa.pub <username>@<host>
这里会要求我们输入远程服务器的密码.
修改服务器的 SSH 配置文件
SSH-server 配置文件位于:/etc/SSH/sshd_config 中, 需要设置 SSH-server 允许使用私钥 / 公钥对的方式登录, 打开配置文件:
VIM /etc/SSH/sshd_config
增加设置:
- RSAAuthentication yes
- PubkeyAuthentication yes
然后重启 SSH-server:
sudo /etc/init.d/SSH restart
设置完成之后就可以使用命令 SSH <username>@<host > 直接登录服务器了, 不需要再输入密码了.
添加私钥
jenkins 首页, 系统管理 -> 系统设置 -> 下拉, 找到 Publish over SSH, 填写 Key 和 SSH Server -> 保存
高级选项能够配置 SSH 服务器端口和超时. Test 可测试, 显示 success 配置成功.
参考
使用 SSH 免密码登录 Linux 服务器 https://segmentfault.com/a/1190000008479071
来源: http://www.bubuko.com/infodetail-2966086.html