一、生成 SSH 密钥对(在本地机器上)
- 打开终端(Linux/macOS)或使用 PowerShell/WSL(Windows)。
- 执行以下命令生成密钥对:
1
| ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
|
-t rsa:指定密钥类型为 RSA(也可以使用 -t ed25519 更安全)。-b 4096:密钥长度(RSA 推荐 4096 位)。-C:添加注释(通常是邮箱,可选)。
- 按提示操作:
- 保存路径:直接回车使用默认路径
~/.ssh/id_rsa。 - 设置密码(passphrase):可选,增强安全性。如果希望完全免密,直接回车留空。
生成后会在 ~/.ssh/ 目录下创建两个文件:
id_rsa:私钥(不要泄露)id_rsa.pub:公钥(用于上传到服务器)
二、将公钥上传到远程服务器
方法一:使用 ssh-copy-id
1
| ssh-copy-id username@server_ip
|
例如:
1
| ssh-copy-id user@192.168.1.100
|
系统会提示你输入远程用户的密码,验证通过后,公钥会被自动追加到服务器的 ~/.ssh/authorized_keys 文件中。
⚠️ 如果提示 command not found,说明 ssh-copy-id 不存在(常见于 macOS 或某些 Linux 发行版),请使用方法二。
方法二:手动复制公钥
- 查看本地公钥内容:
复制输出的整段内容(以 ssh-rsa AAAAB3... 开头)。
- 登录远程服务器:
- 在服务器上创建
.ssh 目录(如果不存在):
- 将公钥内容写入
authorized_keys 文件:
1
| echo "你复制的公钥内容" >> ~/.ssh/authorized_keys
|
注意替换“你复制的公钥内容”为实际内容。
- 设置正确的权限(非常重要!SSH 要求严格权限):
1
2
3
| chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown $USER:$USER ~/.ssh -R
|
三、配置别名
- 配置别名:编辑
~/.ssh/config,简化连接命令:
1
2
3
4
| Host myserver
HostName 192.168.1.100
User myuser
IdentityFile ~/.ssh/id_rsa
|
之后只需运行: