Linux实现密钥免密登录 让Linux VPS服务器更安全
这里的密钥对是
Public key
,具体请参考 公开密钥加密
将密钥保存到远程服务器
1.如果是通过ssh-keygen生成的密钥对,那么我们需要将id_rsa.pub文件放置到你要进行远程登陆的用户主目录下,比如这里的用户名为centos,主目录为/home/centos,那么我们需要将id_rsa.pub公钥放置到/home/centos/.ssh目录下,然后执行以下操作:
使用命令
1 | ssh-keygen -t rsa |
接下来会提示让你输入一个路径来保存密钥对,默认在 ~/.ssh/id_rsa
下面生成 id_rsa
(私钥)和 id_rsa.pub
(公钥),如果没什么特殊需求就直接默认就好。
- 将
id_rsa.pub
文件,重命名为 authorized_keys; - 执行chmod 600 ./authorized_keys 命令,修改权限;
- 执行命令 sudo vi /etc/ssh/sshd_config进行配置,将RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes ,保存;
- 重启sshd服务,Debian/Ubuntu执行sudo /etc/init.d/ssh restart ;CentOS执行:sudo /etc/init.d/sshd restart。
注:centos7重启服务方式与以前不同,请执行systemctl restart sshd.service
2.如果是通过xshell方式生成的密钥对,那么将xshell生成的id_rsa.pub文件放置到用户的主目录下的.ssh目录(比如/home/centos/.ssh
),接下来执行的操作跟上述操作[1 ] 是一样的。
然后提示你输入密码(即本机使用 SSH
连接时的密码 #和服务器密码无关),也是直接回车默认为空即可。
将公钥上传到服务器上
这里以使用 SCP
为例,上传公钥 id_rsa.pub
到服务器上
1 | scp ~/.ssh/id_rsa.pub root@139.59.22.131:~ |
将公钥追加到服务器的认证密钥中
将上传到服务器上的 id_rsa.pub
公钥追加到 authorized_keys
文件中,命令是
1 | cat ~/id_rsa.pub >> ~/.ssh/authorized_keys |
修改服务器的配置以启用公钥认证
修改 vi /etc/ssh/sshd_config
配置文件(如果有的话就进行修改,没有的话就添加进来)
1 | RSAAuthentication yes # 启用 RSA 认证(默认是注释掉的,将注释去掉,如果不是 yes,改为 yes) |
重启 SSH
服务
1 | service sshd restart |
最后验证一下
连接服务器,这里以 SSH
客户端为例
1 | ssh root@139.59.22.131 |
然后,就直接连上了,不需要输入密码了呢 O(≧▽≦)O
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 月星塘!