使用SSH密钥登录VPS服务器的设置步骤
前段时间买了台绿云GreenCloud的VPS服务器,默认使用的是用户名和密码登录。最近我每次使用XShell登录后都会提示像这样有其他用户尝试登录的信息:
There were 736 failed login attempts since the last successful login.
看来有人在穷举密码的方式登录服务器,不过由于我使用的root密码强度和随机性较高,暂时没有登录成功。为了安全起见,瓦力箱子趁着下午没事的时候将服务器设置为SSH使用密钥登录,并禁止了使用密码远程登录,具体设置方法如下。
1、创建SSH密钥对
首先使用原来的用户名和密码,通过XShell远程登录Linux服务器后,输入生成密钥的命令:
ssh-keygen
输入保存密钥文件的路径,使用默认/root/.ssh/地址回车就行。
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:
出现下方代码说明密钥对已经创建完成,其中id_rsa是私钥文件,可以通过FTP工具登录服务器将它下载到本地电脑备用。 id_rsa.pub是公钥文件,留在VPS服务器进行下一步的配置。
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:
The key's randomart image is:
2、服务端配置公钥
切换到/root/.ssh/目录,利用公钥文件创建登录需要的authorized_keys文件
cd .ssh
cat id_rsa.pub >> authorized_keys
更改authorized_keys文件和目录的权限,600对应的是-rw——-,代表只有文件所有者具有读写权限。700对应的是-rwx——,代表文件或目录所有者有读写和执行权限。
chmod 600 authorized_keys
chmod 700 ~/.ssh
编辑ssh配置文件,添加
vi /etc/ssh/sshd_config
按Insert键进入编辑模式,在文件末尾添加下方代码。按Esc退出编辑模式,输入:wq退出保存。
# 密钥登录配置
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
重启SSH服务是配置生效:
systemctl restart sshd.service
3、登录端导入私钥
打开XShell软件,点左上角文件夹打开会话列表,右击需要使用SSH密钥登录的服务器选择属性,切换到用户身份验证,勾选Public Key复选框。
点击设置 – 浏览 – 导入,选择上一步保存的私钥文件导入XShell客户端,最后确定保存。
设置完成后,测试使用密钥能否登录服务器。如果登录成功说明密钥已经正确设置,接着继续编辑SSH配置文件,在末尾添加禁用密码登录的代码,保存后重启SSH服务。
PasswordAuthentication no
好了,以上就是在VPS服务器上面生成密钥对,实现通过密钥远程登录Linux主机的流程分享。设置完成后禁用密码登录可以提高服务器的安全性,拒绝他人暴力破解密码的尝试。