在工做当中常常会登陆远程服务器安装软件、部署应用或者拷贝文件到远程服务器上,都会提示输入密码才能完成相关的操做。工做中若是要频繁登陆服务器和拷贝文件的状况下,常常输入密码不免会以为麻烦,且效率低下。并且在持续集成的场景下,自动部署应用时是没有人工干预的,这种状况若是要输入密码才能拷贝文件至远程服务器,就不能实现自动部署的功能了。下面以A服务器与B服务器双向实现免密码登陆和拷贝文件为例,介绍相关的配置。
A服务器地址:192.168.1.200,下面简称A
B服务器地址:192.168.1.201,下面简称Bbash
ssh-keygen -t rsa
执行上述命令,一路回车,会在当前登陆用户的home目录下的.ssh目录下生成id_rsa和id_rsa.pub两个文件,分别表明密钥对的私钥和公钥。服务器
这里拷贝到B的root用户home目录下为例:ssh
scp /root/.ssh/id_rsa.pub root@192.168.1.200:/root
拷贝A的id_rsa.pub内容到.ssh目录下的authorized_keys文件中spa
cd /root cat id_rsa.pub >> .ssh/authorized_keys
ssh root@192.168.1.201 scp abc.txt root@192.168.1.201:/root
实现B免密码登陆A,操做方式是同样的,在B中用ssh-keygen生成ssh密钥对,将公钥拷贝到A中,A将B的公钥拷贝到.ssh目录下的authorized_keys文件中便可。code
快捷方式部署
ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器地址
若是命令ssh-copy-id命令不存在,那是当前系统没有安装openssh-clients客户端组件,能够经过以下命令安装:持续集成
yum install openssh-clients*