1.本机创建密钥
$ ssh-keygen -t rsa
后面可加-P表示密码,-P '' (-P后面两个单引号)就表示空密码,
也可以不用-P参数,这样就要三车回车,用-P就一次回车。
在~/.ssh下生成id_rsa和id_rsa.pub
2. 将公钥上传到服务器,并配置
$ scp ~/.ssh/id_rsa.pub root@192.168.31.100:~/
输登录密码
$ mkdir .ssh
$ cat id_rsa.pub >> .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys #设置authorized_keys权限为600
$ systemctl restart sshd # 重启sshd服务
3. 在本机上(与第一步的主机相同)配置
$ sudo ssh-agent bash --login -i
$ ssh-add ~/.ssh/id_rsa
$ ssh root@192.168.31.100 # 发现不需要密码可以登录了
4. 禁用服务器上的root密码登录
$ vi /etc/ssh/sshd_config
修改 PasswordAuthentication 为 no
$ systemctl restart sshd
换个机器用密码登录看看, 发现如下
[root@localhost ~]# ssh root@192.168.31.101
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).