配置ssh免密登录

是不是每次用 SSH 连接远程服务器时,频繁输入密码都让人觉得特别麻烦?😩 不仅麻烦,还让整个连接过程显得繁琐低效,真是让人抓狂!😣 为了解决这个问题,今天就来分享一下 如何配置 SSH 免密登录,👏 简化操作流程,让你轻松搞定远程连接!

第一步:检查现有的 SSH 密钥对

首先检查主要是为了不覆盖现有密钥。运行以下Is 命令以查看,存在可以使用这些密钥并跳过第二步,或备份旧密钥并生成新密钥。如果看到 No such file or directory 或 no matches found 意味着没有 SSH 密钥,则可以继续执行下一步并生成新密钥。

1
ssh-keygen -l -f ~/.ssh/id_rsa
1
ssh-keygen -l -f C:\Users\<你的用户名>\.ssh\id_rsa

第二步:生成新的 SSH 密钥对

使用以下命令生成一个新的 4096 位 SSH 密钥对,并将电子邮件地址作为注释:

1
ssh-keygen -b 4096 -C "Email@qq.com"
  • 文件位置和文件名:按下 Enter 即可使用默认位置和名称(通常为 ~/.ssh/id_rsa)。
  • 密码短语:工具会提示设置一个安全密码短语。
    • 如果不需要额外的安全保护,可以直接按下 Enter 跳过。
    • 如果设置密码短语,您的 SSH 密钥将获得更高的安全性。

完成后,密钥对会生成在指定目录。公钥(通常以 .pub 结尾)用于配置远程服务,而私钥需要妥善保管。

第三步:将公钥添加到远程服务器或服务

生成 SSH 密钥对后,还需要将 公钥 添加到远程服务器或服务中,以实现身份验证。

1. 查看并复制公钥

公钥默认存储在 ~/.ssh/id_rsa.pub 文件中,具体需要看生成时候配置的文件路径。

1
cat ~/.ssh/id_rsa.pub

2. 添加公钥到远程服务器

假设需要连接到一台 Linux 服务器,可以将公钥添加到目标服务器用户的 ~/.ssh/authorized_keys 文件中。

方法 1:手动添加

在远程服务器上运行以下命令:

1
2
3
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "粘贴你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

方法 2:通过 ssh-copy-id 自动添加

在本地执行以下命令,将公钥上传到服务器:

1
ssh-copy-id user@remote-server

user@remote-server 替换为目标用户名和服务器地址。

第四步:测试连接

验证 SSH 免密登录是否成功:

1
ssh user@remote-server

如果成功,你将直接登录到远程服务器,而无需输入密码。
由于我是 Ubuntu 系统,配置成功后直接提示我: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 6.8.0-48-generic x86_64)

完成以上步骤后,你的 SSH 密钥已成功配置,可以在对应环境中使用 SSH 进行免密登录或身份验证。