# Linux SSH秘钥 登录

## 写在前面

一般在安装完服务器后都会采用密码验证的方式登录，但是这样的验证方法漏洞还是比较多的，容易被爆破。因此建议采用秘钥的方式进行远程连接。

## 秘钥创建

```shell
$ 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”是公钥文件，我们需要将公钥内容添加到认证秘钥文件中，这样就可以使用配套的私钥文件进行认证了。

## 配置秘钥登录

### 将公钥写入认证文件

```shell
$ cat "公钥文件" > ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
```

### 配置sshd-conf文件

```shell
vim /etc/ssh/sshd_config

RSAAuthentication yes # 开启密钥登入的认证方式

PubkeyAuthentication yes # 开启密钥登入的认证方式

PermitRootLogin yes # 此处请留意 root 用户能否通过 SSH 登录，默认为yes

# 可以正常用密钥登录了，再把这里改为no
PasswordAuthentication yes #当我们完成全部设置并以密钥方式登录成功后，可以禁用密码登录。这里我们先不禁用，先允许密码登陆
```

### ssh登录

在关闭密码验证后，登录需要在ssh的命令中使用`-i`参数来启用秘钥文件。



