在使用jenkins管理发布项目的时候,免不了需要将打包好的包发布到其他服务器上,这个时候就需要涉及到免密登陆到目标机器上,所以这里记录一下免密登陆的操作。
两台服务器:
192.168.1.198(jenkins客户端安装机器)
192.168.1.199(被登陆的客户端)
第一步:
在192.168.1.198机器上生产密钥
# ssh-keygen -t rsa ##-t rsa可以省略,默认就是生成rsa类型的密钥
说明:命令执行后会有提示,输入三次回车即可,执行完成后会在当前用户的.ssh目录下生成两个文件:id_rsa、id_rsa.pub文件,前者时私钥文件,后者是公钥文件(拷贝到其他主机只需要拷贝这个文件的内容)
另外,对于多台被登陆的服务器来说,jenkins的服务器只要生成一次即可,然后只需要将id_rsa.pub发布到各个被登陆的服务器即可。
第二步:
执行:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.199
执行这条命令后会自动将登录主机的公钥文件内容追加至目标主机中指定用户(root).ssh目录下的authorized_keys文件中。这个过程是全自动的,非常方便!
这条命令执行后会需要你输入199服务器的密码,输入即可。
第三步:
登陆199的服务器:
ssh 192.168.1.199
ps:如果我们目标服务器端口不是22,而且其他端口,比如1122,那么我们需要在第二步的时候加上:
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 1122 root@192.168.1.199