一般在安装完服务器后都会采用密码验证的方式登录,但是这样的验证方法漏洞还是比较多的,容易被爆破。因此建议采用秘钥的方式进行远程连接。
$ ssh-keygen -t rsa # 创建秘钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): pzxy-centos
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in pzxy-centos.
Your public key has been saved in pzxy-centos.pub.
The key fingerprint is:
SHA256:embl12lYQb7IpD7Mj2IwNwJSGcX1oEuCARuC7KcYtjM root@CentOS
The key's randomart image is:
+---[RSA 3072]----+
|*.. .=..o . |
创建完会生成两份文件:"id_rsa.pub"和"is_rsa"。
其中“id_rsa.pub”是公钥文件,我们需要将公钥内容添加到认证秘钥文件中,这样就可以使用配套的私钥文件进行认证了。
$ cat "公钥文件" > ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
vim /etc/ssh/sshd_config
RSAAuthentication yes # 开启密钥登入的认证方式
PubkeyAuthentication yes # 开启密钥登入的认证方式
PermitRootLogin yes # 此处请留意 root 用户能否通过 SSH 登录,默认为yes
# 可以正常用密钥登录了,再把这里改为no
PasswordAuthentication yes #当我们完成全部设置并以密钥方式登录成功后,可以禁用密码登录。这里我们先不禁用,先允许密码登陆
在关闭密码验证后,登录需要在ssh的命令中使用-i
参数来启用秘钥文件。