Featured image of post 在vps上设置 SSH 通过密钥登录

在vps上设置 SSH 通过密钥登录

一般我们使用 Xshell 等 SSH 客户端来远程管理 Linux 服务器。

But,一般的密码方式登录,就会产生密码可能被暴力破解的问题。(用16位乱序密码的大触除外)

那么,如何一劳永逸地解决服务器被暴力破解的问题呢?

那就是通过密钥方式登录。

使用密钥登入的好处:
  • 逼格高
  • 安全性强

tips. 使用密钥登入只会改变ssh登入方式,在vps使用sudo时让你输的密码还是之前的密码。

1. 制作密钥对

首先在服务器上制作密钥对。(只要是linux系统的就行,有特殊癖好的可以在家里的linux电脑上做。

1
2
3
4
5
6
7
8
9
root@Angle:~ ssh-keygen #建立密钥对
enerating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #按Enter
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:
balabala

密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用。当然,也可以留空,实现无密码登录。

现在,在 root 用户的主目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件。id_rsa 为私钥,id_rsa.pub 为公钥。

2. 在服务器上安装公钥

  • 如果你是在家中的计算机上创建的密钥,使用sftp把 id_rsa.pub (公钥)上传到服务器用户的主目录。
  • 如果你是在当前服务器上创建的密钥,使用mv命令把 id_rsa.pub (公钥)移动到服务器用户的主目录。
1
mv .ssh/id_rsa.pub ~/

输入以下命令,在服务器上安装公钥

1
cat id_rsa.pub >> .ssh/authorized_keys

如此便完成了公钥的安装。为了确保连接成功,请保证以下文件权限正确:

1
2
chmod 600 .ssh/authorized_keys
chmod 700 .ssh

3.设置 SSH,打开密钥登录功能

编辑 /etc/ssh/sshd_config 文件,进行如下设置:

1
2
RSAAuthentication yes
PubkeyAuthentication yes

另外,请留意 root 用户能否通过 SSH 登录:

1
PermitRootLogin yes

当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录:

1
PasswordAuthentication no

最后,重启 SSH 服务:(也可以直接reboot)

1
service sshd restart

4. 在客户端使用私钥

把 id_rsa 文件转入你使用的电脑里

在新建会话中填入服务器基本信息,然后选择"用户身份验证"

把私钥导入。。。

example

大功告成!