Linux系统大多数都支持OpenSSH,生成公钥、私钥的最好用ssh-keygen命令,若是用putty自带的PUTTYGEN.EXE生成会不兼容OpenSSH,从而会致使登陆时出现server refused our key错误。linux
一、root用户登录后,运行如下第一句指令,其余根据提示进行输入:安全
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): #建议直接回车使用默认路径 Created directory '/root/.ssh' Enter passphrase (empty for no passphrase): #输入密码短语(留空则直接回车) Enter same passphrase again: #重复密码短语 Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 05:71:53:92:96:ba:53:20:55:15:7e:5d:59:85:32:e4 root@test The key's randomart image is: +--[ RSA 2048]----+ | o o .. | | . o oo.+ . | | o.+... = | | ...o | | o S | | . | | | | | | | +--------------------+
此时在/root/.ssh/目录下生成了2个文件,id_rsa为私钥,id_rsa.pub为公钥。私钥本身下载到本地电脑妥善保存(丢了服务器可就无法再登录了),为安全,建议删除服务器端的私钥。公钥则能够任意公开。bash
二、使用如下命令将公钥导入到VPS:服务器
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
三、修改SSH的配置文件/etc/ssh/sshd_config :dom
#RSAAuthentication yes #PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys
去掉上面3行前面的#,保存后重启SSH服务。ssh
service sshd restart
至此你的linux服务器已经支持使用SSH私钥证书登陆。在你使用SSH Key登陆验证成功后,仍是为了安全,建议你关闭root用户使用密码登录,关闭的方法以下:ide
修改SSH的配置文件/etc/ssh/sshd_config,找到下面1行:加密
PasswordAuthentication yes
修改成:rest
PasswordAuthentication no
保存后重启SSH服务。code
service sshd restart
好了,至此只要你保存好你的私钥(为安全,建议删除服务器端的私钥),你的服务器相比原来使用root用户加密码登录来讲已经安全多了。