由于公司的生产环境有很多台Linux的CentOS服务器, 为了方便机子(假设两台机子A,B)互相之间免密ssh, scp命令操作,配置如下
1. 在A、B上分别创建本机的公钥和私钥,输入命令后连续三次回车
ssh-keygen -t rsa
2. 查看公私钥的文件生成情况
cd ~/.ssh/
ls
看到列表有2个文件:
文件说明:
id_rsa : 生成的私钥文件 id_rsa.pub : 生成的公钥文件
3. 把A机子的公钥文件id_rsa.pub(拷贝需要重命名,否则把B的给替换了, 命令如: scp id_rsa.pub work@xen1-dev-1:/data/work/.ssh/a.id_rsa.pub)拷贝到B的 ~/.ssh 目录下
4. 登录B机子, 在~/.ssh目录下创建一个文件authorized_keys(如果已有则不需要创建):
touch authorized_keys
5. 把a.id_rsa.pub内容追加到authorized_keys文件末尾(追加后可以把文件a.id_rsa.pub删除)
cat a.id_rsa.pub >> authorized_keys
6. 设置文件和目录权限(设置的目的是确保只有当前账号拥有修改目录文件的权限):
设置authorized_keys权限
chmod 600 authorized_keys
设置.ssh目录权限
chmod 700 -R .ssh
7. 退出B,登录A账号, A机子使用ssh命令过去B机子:
ssh work@xen1-dev-1
此时发现已经不需要密码登录了,直接进入了B机子:
说明A机子免密登录B机子成功!
同样, B机子免密登录A机子也是同样的操作,重复上面的操作步骤即可~