ssh linux 秘钥
时间: 2025-01-07 07:42:18 浏览: 39
### 如何在 Linux 中配置 SSH 密钥认证
#### 创建 SSH 密钥对
为了实现基于 SSH 密钥的身份验证,在本地机器上需要先生成一对密钥。这可以通过 `ssh-keygen` 工具完成,该工具能够生成、管理并转换用于 SSH 的认证密钥[^2]。
```bash
ssh-keygen -t rsa -b 4096 -C "[email protected]"
```
上述命令将会创建一个带有电子邮件标签的新 RSA 类型的密钥对,并指定了更大的位数来增强安全性。执行此操作后,默认情况下会在用户的 `.ssh` 文件夹内找到名为 `id_rsa` 和 `id_rsa.pub` 的私钥与公钥文件。
#### 将公钥复制到远程主机
一旦拥有了有效的密钥对,下一步就是把生成好的公钥发送至目标服务器以便建立信任关系。可以利用 `ssh-copy-id` 实用程序简化这一过程:
```bash
ssh-copy-id user@remote_host
```
这条指令会自动处理将本地计算机上的公共部分追加到远端账户下的授权键列表中去,即位于 `/home/user/.ssh/authorized_keys` 文件里[^3]。
#### 修改服务器配置允许密钥登录
确保远程服务器已启用 PublicKey 认证机制。通常这意味着编辑 `/etc/ssh/sshd_config` 配置文档中的某些条目以激活必要的功能开关[^4]:
```bash
sudo nano /etc/ssh/sshd_config
```
查找下列两行并将它们前面可能存在的注释符号移除(如果存在),同时确认其值被设为 yes:
- `PubkeyAuthentication yes`
更改完成后记得重启 SSH 守护进程使新的设定生效:
对于 Systemd 系统:
```bash
sudo systemctl restart sshd
```
而对于 SysVinit 或其他较老版本的操作系统,则应采用相应的服务控制方法重载守护程序。
#### 测试连接
最后一步是尝试不输入密码直接访问远程主机,以此检验整个设置是否成功。只需像平常一样运行常规的 SSH 登录命令即可:
```bash
ssh user@remote_host
```
如果一切正常的话,现在应该可以直接进入 shell 而无需再次提供口令了。
阅读全文
相关推荐

















