在日常开发或远程部署过程中,SSH 每次连接服务器都需要输入密码,这确实比较麻烦。其实,通过 SSH 配置免密登录就能解决这个问题,配置完成后,后续连接服务器时无需输入密码,直接一键远程登录服务器。

SSH 免密登录简单来说,就是在本地生成一对相互匹配的密钥,包括公钥和私钥。其中,公钥需要配置到云服务器上,私钥则保存在本地电脑中。当使用 SSH 连接服务器时,服务器和本地电脑会自动通过这对密钥进行身份验证,从而实现无需输入密码的安全登录。
那么,SSH 如何免密码登录服务器呢?接下来,本文将为您提供详细的SSH 配置免密登录操作教程,跟随我们一起来看看吧!
1. 在 Windows 电脑上打开 CMD,输入 ssh-keygen -t rsa -b 4096 并按下回车键。该命令会使用 RSA 4096 算法生成一对 SSH 登录密钥。

2. 密钥生成过程中,系统会依次提示设置密钥保存位置和私钥密码,直接连续按下回车键使用默认设置即可。

3. 密钥生成完成后,打开默认保存目录 C:\Users\用户名\.ssh,可以看到已经生成的 id_rsa 和 id_rsa.pub 两个文件,其中 id_rsa 是私钥,id_rsa.pub 是公钥。私钥需要保存在本地电脑上,不要上传或泄露。

4. 接下来,在 CMD 中执行 scp C:\Users\qi\.ssh\id_rsa.pub root@50.118.*.*:/root/,将本地生成的公钥文件复制到云服务器的 /root/ 目录。执行后按照提示输入云服务器登录密码,等待文件上传完成即可。

5. 公钥上传完成后,使用 ssh 用户名@服务器IP 登录云服务器,然后执行 mkdir -p ~/.ssh 创建 SSH 密钥认证目录。

6. 执行 cat /root/id_rsa.pub >> ~/.ssh/authorized_keys,将刚刚上传到服务器的公钥内容追加到 authorized_keys 文件中。SSH 服务会通过该文件中的公钥对客户端进行身份验证。

7. 为确保 SSH 能够正常读取密钥认证文件,依次执行 chmod 700 ~/.ssh 和 chmod 600 ~/.ssh/authorized_keys 设置目录及文件权限。

8. 完成以上配置后,退出当前 SSH 连接,在 Windows CMD 中使用SSH远程连接服务器时,只需执行 ssh root@50.118.*.* 命令即可一键连接服务器。

SSH免密登录除了在 Windows CMD 中执行 ssh-keygen 自己生成密钥外,很多云服务商都支持在创建云服务器时直接生成或配置 SSH 密钥。例如:VMRack 云服务器。
VMRack 提供 SSH 密钥功能,可以将密钥配置与云服务器创建流程结合起来,省去手动生成、上传和配置公钥的步骤,让 SSH 登录更加简单,同时相比传统密码登录具有更好的安全性。

VMRack 是一家全球云基础设施服务商,提供 CN2 GIA、AS9929、CMIN2 等三网精品线路云服务器,以及 CDN、对象存储、云转码等服务,覆盖企业和开发者的多种部署场景。除此之外,VMRack 还提供多 IP 地址、内网、DDoS 防护等功能,进一步提升网络部署、安全防护和资源扩展能力。
SSH 配置免密登录主要通过公钥和私钥完成身份验证,配置完成后即可避免每次连接服务器都输入密码。对于 Windows 用户,可以按照本文步骤手动生成并配置 SSH 密钥;如果云服务商本身提供 SSH 密钥功能,则可以进一步简化配置流程,让服务器部署和远程管理更加便捷。