### 添加SSH密钥登录 添加 SSH 密钥登录是一种提高远程登录安全性和便捷性的方式,主要通过密钥对替代传统密码认证。下面是详细步骤和说明: ------ ### 1. 生成 SSH 密钥对 在本地终端中使用 `ssh-keygen` 命令生成一对密钥:公钥和私钥。建议使用 4096 位 RSA 加密或其他算法,例如 Ed25519。示例命令如下: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` - 解释: - `-t rsa` 指定使用 RSA 算法(如果支持,可以考虑使用更现代的 Ed25519,命令为 `ssh-keygen -t ed25519 -C "your_email@example.com"`)。 - `-b 4096` 定义密钥长度为 4096 位(对于 RSA 来说更安全)。 - `-C "your_email@example.com"` 为生成的密钥添加备注,便于标识。 在提示时,接受默认保存路径(通常是 `~/.ssh/id_rsa`)和可选的 passphrase(建议设置,也可以留空,但设置后更安全)。 ------ ### 2. 将公钥上传到远程服务器 #### 方法一:使用 `ssh-copy-id` 工具 如果你的系统中有 `ssh-copy-id` 工具,可以直接执行: ```bash ssh-copy-id username@remote_host ``` - 解释: - 此命令会自动将本地 `~/.ssh/id_rsa.pub`(或者对应的公钥文件)追加到远程服务器用户家目录下 `~/.ssh/authorized_keys` 文件中。 - 执行后,系统会要求输入远程用户密码,用于验证和上传公钥。 #### 方法二:手动复制 如果没有 `ssh-copy-id` 工具,可以手动复制公钥内容: 1. 查看公钥内容: ```bash cat ~/.ssh/id_rsa.pub ``` 2. 在远程服务器上操作: - 登录到远程服务器。 - 若目录不存在,创建 ``` .ssh ``` 目录,并设置权限: ```bash mkdir -p ~/.ssh chmod 700 ~/.ssh ``` - 将本地剪贴板中的密钥内容追加到 ``` authorized_keys ``` 文件中: ```bash echo "你的公钥内容" >> ~/.ssh/authorized_keys ``` - 设置 ``` authorized_keys ``` 文件的权限为 600: ```bash chmod 600 ~/.ssh/authorized_keys ``` ------ ### 3. 测试 SSH 密钥登录 完成以上步骤后,在本地终端尝试连接远程服务器: ```bash ssh username@remote_host ``` - 如果一切配置正确,系统将直接以密钥认证登录,而不需要再输入密码(或者只需要输入你为密钥设置的 passphrase)。 ------ ### 4. 调整 SSH 配置(可选) 若需要针对特定服务器进行更细致的配置,可以编辑本地的 SSH 客户端配置文件 `~/.ssh/config` ,例如: ```plaintext Host myserver HostName remote_host User username Port 22 IdentityFile ~/.ssh/id_rsa ``` 这样以后只需通过 `ssh myserver` 便可快速登录。 ------ **小贴士:** - **私钥安全性:** 确保本地私钥文件 `~/.ssh/id_rsa` 的权限是 600,防止其他用户访问。 - **备份:** 将私钥存放在安全的地方,若丢失或泄露可能影响账户安全。 - **密钥更新:** 定期更新密钥也是一个不错的安全习惯。 这种方法不仅增强了安全性,还使得在多台服务器间管理登录变得更为便利。如果你需要了解如何在不同客户端(如 Windows 下的 PuTTY)中使用 SSH 密钥,也可以继续询问,我有更多相关技巧和配置建议哦!