原文链接:http://blog.csdn.net/xyang81/article/details/51477925
在工作当中经常会登录远程服务器安装软件、部署应用或者拷贝文件到远程服务器上,都会提示输入密码才能完成相关的操作。工作中如果要频繁登录服务器和拷贝文件的情况下,经常输入密码难免会觉得麻烦,且效率低下。而且在持续集成的场景下,自动部署应用时是没有人工干预的,这种情况如果要输入密码才能拷贝文件至远程服务器,就不能实现自动部署的功能了。下面以A服务器与B服务器双向实现免密码登录和拷贝文件为例,介绍相关的配置。
A服务器地址:192.168.1.200,下面简称A
B服务器地址:192.168.1.201,下面简称B
1、在A生成密钥对
ssh-keygen -t rsa -P ""
执行上述命令,一路回车,会在当前登录用户的home目录下的.ssh目录下生成id_rsa和id_rsa.pub两个文件,分别代表密钥对的私钥和公钥,如下图所示:
2、拷贝A的公钥(id_rsa.pub)到B
这里拷贝到B的root用户home目录下为例:
scp /root/.ssh/id_rsa.pub root@192.168.1.200:/root
3、登录B
拷贝A的id_rsa.pub内容到.ssh目录下的authorized_keys文件中
cd /root
cat id_rsa.pub >> .ssh/authorized_keys
4、此时在A中用SSH登录B或向B拷贝文件,将不需要密码
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文件中即可。
快捷方式
ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器地址