资讯中心

如何在美国Linux服务器上设置SSH密钥认证?

  

在您的美国Linux服务器上设置SSH密钥认证,可以遵循以下步骤进行操作,以增强远程登录的安全性并避免使用密码登录:

### 第一步:在本地计算机生成SSH密钥对

1. 打开终端(Linux/macOS)或Git Bash(Windows)。
2. 输入以下命令以生成SSH密钥对(默认使用RSA算法,若想使用更安全的Ed25519算法,可以在`-t`后面加上`ed25519`):
```
ssh-keygen -t rsa
```

```
ssh-keygen -t ed25519
```
3. 按Enter键接受默认的文件保存路径(通常是`~/.ssh/id_rsa`私钥和`~/.ssh/id_rsa.pub`公钥),或者指定自定义路径。
4. 可以设置密钥的密码(可选),以增加安全性。如果不希望每次使用密钥时都输入密码,则直接按Enter跳过。

### 第二步:复制公钥到服务器

1. 登录到您的Linux服务器(使用密码认证,这是最后一次使用密码)。
2. 在本地计算机上,将公钥复制到服务器的`~/.ssh/authorized_keys`文件中。可以使用以下命令(确保替换`user`和`your_server_ip`):
```
ssh-copy-id user@your_server_ip
```
这个命令会自动将本地的公钥追加到服务器对应用户的`authorized_keys`文件中。如果提示输入密码,请输入服务器账户的密码。

### 第三步:配置服务器SSH服务

1. 登录到您的Linux服务器,编辑SSH服务器配置文件,通常是`/etc/ssh/sshd_config`。
2. 查找或添加以下行以启用密钥认证并禁用密码认证:
```
PubkeyAuthentication yes
PasswordAuthentication no
```
3. 保存更改并退出编辑器,然后重启SSH服务使更改生效:
```
sudo systemctl restart sshd
```

### 第四步:测试SSH密钥认证

1. 关闭当前的SSH连接。
2. 重新尝试从本地计算机SSH到服务器,这次不需要输入密码:
```
ssh user@your_server_ip
```
如果一切配置正确,您应该能够直接登录,无需输入密码。

完成以上步骤后,您的Linux服务器就成功启用了SSH密钥认证,增强了远程访问的安全性。请确保妥善保管好您的私钥,不要将其泄露给他人。