MacOs免密登录CentOs
环境
本文操作的环境如下:
CentOs 7
MacOs10.12.6
生成秘钥
首先在本机生成秘钥,打开终端,输入:
ssh-keygen -t rsa -C "xxxxx@qq.com"
后面的邮箱随意就可以
然后一直按回车键,执行结束后会在当前用户根目录下面生成一个.ssh
的隐藏文件夹
我们查看一下这个文件夹
wangjianfengdeiMac:~ wangjianfeng$ cd ~/.ssh
wangjianfengdeiMac:.ssh wangjianfeng$ ls
id_rsa id_rsa.pub known_hosts
wangjianfengdeiMac:.ssh wangjianfeng$
可以看到,里面生成了3个文件,其中id_rsa
是私钥文件,id_ras.pub
是公钥文件,known_hosts
文件不用管
上传秘钥
在ssh
目录执行一下命令:
cat id_rsa.pub > authorized_keys
将公钥内容复制到authorized_keys
中.
接下来登录远程服务器,创建.ssh
文件夹
wangjianfengdeiMac:.ssh wangjianfeng$ ssh root@xxx.xxx.xxx.xxx
root@xxx.xxx.xxx.xxx's password:
Last login: Sat Mar 3 15:03:08 2018 from xx.xx.xx.xxx
[root@VM_0_14_centos ~]# mkdir ~/.ssh
退出登录后通过scp
把authorized_key
复制到服务器中的.ssh
目录下
wangjianfengdeiMac:.ssh wangjianfeng$ scp authorized_keys root@xxx.xxx.xxx.xxx:/root/.ssh/authorized_keys
root@xxx.xxx.xxx.xxx's password:
authorized_keys 100% 394 73.1KB/s 00:00
然后尝试登录远程服务:
这里有可能会出现两种个情况:
- 登录成功:说明配置成功了
- 需要密码才能登录成功
如果需要密码才能登录的话,就是配置还未生效。通过以下步骤来尝试:
- 登录服务端
检查
.ssh
目录的文件权限以及authorized_keys
的文件权限.ssh
应该是700,authorized_keys
应该是600通过以下命令修改
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
如果做了上述操作还不能成功的话,请运行以下命令来查看失败原因:
tail /var/log/secure -n 20