Loading... ## 1. 生成 SSH 密钥对 在本地终端(Windows PowerShell、Linux 终端或 macOS 终端)运行以下命令,生成 SSH 密钥对: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` * `-t rsa`:指定密钥类型为 RSA。 * `-b 4096`:指定密钥长度为 4096 位,提高安全性。 * `-C "your_email@example.com"`:添加一个注释(可选),用于区分不同的密钥,通常使用邮箱或用户名。 ### 选择密钥保存位置 终端会提示你选择存储密钥的位置,默认情况下是: ```bash Enter file in which to save the key (/home/your_user/.ssh/id_rsa): ``` 可以直接按 **Enter** 选择默认路径,或者输入自定义路径。 ### 设置密钥密码(可选) 终端会提示你输入密码: ```bash Enter passphrase (empty for no passphrase): ``` 如果不想设置密码,直接按 **Enter** 跳过。 **密钥生成完成后,默认存储位置如下:** * **私钥**:`~/.ssh/id_rsa` * **公钥**:`~/.ssh/id_rsa.pub` ## 2. 添加公钥到远程服务器 ### 复制公钥到服务器 使用以下命令,将公钥复制到服务器: ```bash ssh-copy-id user@your_server_ip ``` 如果 `ssh-copy-id` 不可用,可以手动复制公钥: ```bash cat ~/.ssh/id_rsa.pub | ssh user@your_server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" ``` ### 设置权限 在服务器上执行以下命令,确保 `.ssh` 目录和 `authorized_keys` 文件权限正确: ```bash chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` ### 测试 SSH 连接 ```bash ssh user@your_server_ip ``` 如果成功进入服务器,说明 SSH 密钥对配置成功。 ## 3. SSH 密钥安全 如果你的 私钥被盗,攻击者可以直接登录你的服务器。可以采用以下办法提高安全性: * **设置密钥密码(passphrase)**,即使密钥被盗,仍然需要密码解密。 * **仅允许特定 IP 访问**,在 `~/.ssh/authorized_keys` 中添加 IP 限制: ```bash from="你的IP地址" ssh-rsa AAAAB3Nza.. ```使用 `ssh-agent` 缓存密钥** ``` 如果设置了密码,每次使用密钥都需要输入密码。可以使用 `ssh-agent` 缓存密钥: ```bash eval $(ssh-agent -s) ssh-add ~/.ssh/id_rsa ``` 这样只需要输入一次密码,后续 SSH 连接不再需要输入。 --- ## 4. 连接 GitHub / GitLab 等平台 如果需要使用 SSH 连接 GitHub / GitLab,按照以下步骤: ### 复制公钥 查看并复制 `id_rsa.pub` 内容: ```bash cat ~/.ssh/id_rsa.pub ``` ### 添加到 GitHub / GitLab 1. 进入 **GitHub / GitLab 账户** →**Settings** → **SSH and GPG keys** 2. 点击 **New SSH Key** 3. 粘贴公钥内容 4. 保存后测试 ```bash ssh -T git@github.com ``` 如果看到 `Hi your_username! You've successfully authenticated`,表示成功配置 SSH 密钥。 ## 5. 关闭 SSH 连接 如果要退出 SSH 连接,可以使用以下方法: 直接退出: ```bash exit ``` 或者使用快捷键: ```bash Ctrl + D ``` 如果 SSH 会话卡住,可以尝试: ```bash ~. ``` 最后修改:2025 年 02 月 14 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 你的支持是我最大的动力