设置服务器SSH信息
首先在容器中生成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免密码登录Linux服务器