Linux系统大多说都支持OpenSSH,生成公钥、私钥的最好用ssh-keygen命令,如果用putty自带的PUTTYGEN.EXE生成会不兼容OpenSSH,从而会导致登录时出现server refused our key错误。
- 1、root用户登陆后,运行以下第一句指令,其他根据提示进行输入:
$ ssh-keygen -t rsa
一路回车。。。
此时在/root/.ssh/目录下生成了2个文件,id_rsa为私钥,id_rsa.pub为公钥。私钥自己下载到本地电脑妥善保存(丢了服务器可就没法再登陆了),为安全,建议删除服务器端的私钥。公钥则可以任意公开。
- 2、使用以下命令将公钥导入到VPS:
$ cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
- 3、修改SSH的配置文件/etc/ssh/sshd_config :
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
去掉上面3行前面的#,保存后重启SSH服务。
$service sshd restart
至此你的DigitalOcean VPS已经支持使用SSH私钥证书登录。在你使用SSH Key登录验证成功后,还是为了安全,建议你关闭root用户使用密码登陆,关闭的方法如下:
修改SSH的配置文件/etc/ssh/sshd_config,找到下面1行:
PasswordAuthentication yes
修改为:
PasswordAuthentication no
保存后重启SSH服务。service sshd restart好了,至此只要你保存好你的私钥(为安全,建议删除服务器端的私钥),你的服务器相比原来使用root用户加密码登陆来说已经安全多了。
附
用xshell连接服务器时:
用户密钥处从本地添加你从服务器上保存下来的id_rsa
此处的秘密不知道是保存密钥对的密码,还是xshell的密码,好像不填也行
用vscode连接服务器时也是同理,在c:/Users/.ssh/config 文件中配置ip,用户,端口号,密钥位置