配置Ubuntu的公钥/私钥对,使得非密码登录成为可能。添加远程用户到~/.ssh/authorized_keys文件。具体操作
时间: 2024-10-18 08:11:12 浏览: 33
ubuntu16.04服务器配置ssh免密码登录
在Ubuntu中配置公钥/私钥对以实现非密码登录(即SSH密钥认证),你需要完成以下几个步骤:
1. **生成公钥和私钥**:
- 打开终端并导航到~/.ssh 目录:
```bash
cd ~
mkdir .ssh
```
- 进入.ssh目录并生成新密钥对:
```bash
ssh-keygen -t rsa -b 4096
```
`-t rsa`表示RSA类型,`-b 4096`是密钥长度,可以根据需求调整。
2. **查看并复制私钥**:
- 私钥通常会被保存为id_rsa或id_rsa.pub,查看内容:
```bash
cat ~/.ssh/id_rsa
```
- 将私钥内容复制到剪贴板,或者手动复制到安全的地方,因为不需要发送私钥。
3. **添加公钥到远程主机的 authorized_keys 文件**:
- 使用 `ssh-copy-id` 命令将公钥自动添加到目标用户的.ssh/authorized_keys文件:
```bash
ssh-copy-id -i ~/.ssh/id_rsa.pub user@target-ubuntu-host
```
替换 `user@target-ubuntu-host` 为实际的用户名和目标机器地址。
4. **验证登录**:
- 不再需要密码登录,现在尝试从本地机器登录到目标Ubuntu:
```bash
ssh user@target-ubuntu-host
```
如果一切正常,应该能看到欢迎消息而无需输入密码。
5. **权限设置**:
- 确保authorized_keys文件具有正确的权限:
```bash
chmod 600 ~/.ssh/authorized_keys
chown root:root ~/.ssh/authorized_keys
chmod 700 ~/.ssh
```
6. **相关问题--:**
1. 公钥和私钥有什么区别?
2. 如果丢失了私钥,怎么办?
3. 如何查看当前已授权的SSH密钥列表?
阅读全文