每次使用 SSH 远程连接服务器时,都需要手动的输入密码,断开连接之后又得重新输入密码。有什么办法能在 Windows 上实现SSH 免密登录服务器呢?方法当然是有的,本文将介绍两种Windows SSH 免密登录 Linux 服务器的方法,助您彻底告别频繁输入密码的烦恼。

Windows SSH 配置免密登录的核心在于“非对称加密”机制,即生成一对互相匹配的密钥,即一个公钥和一个私钥。公钥需上传到云服务器上,而私钥则保存在本地的Windows 电脑上。
当您使用SSH远程连接服务器时,服务器与本地电脑会自动利用这对密钥完成身份验证。公钥就像安装在服务器上的一把安全锁,而私钥则是你随身携带的唯一钥匙,只要钥匙和锁匹配成功,无需输入密码即可直接登录。
现在Windows 10/11 系统自带 OpenSSH Client 功能,它是一套 SSH 客户端工具,可以直接使用 SSH 命令连接服务器,也可以使用 ssh-keygen 生成 SSH 密钥对实现免密登录。接下来,本文将为您提供具体的SSH 免密登录配置教程。
1.在Windows 电脑上打开 CDM,然后输入以下命名并按下回车键。
ssh-keygen -t rsa -b 4096
说明:该命令是使用 RSA 4096 算法生成 SSH 登录密钥对。
2.接下来,会提示您设置密钥保存的位置和设置私钥密码,直接按回车键保持默认的即可。

3.打开密钥保存的位置,默认位置为“C:\Users\用户名\.ssh”,可以看到id_rsa(私钥)和id_rsa.pub(公钥)已生成。

4.SSH 密钥生成之后,在 CMD 中执行以下 scp 命令,再输入云服务器的密码,就能将公钥文件复制到云服务器。
scp C:\Users\qi\.ssh\id_rsa.pub root@50.118.*.*:/root/
说明:
scp:安全复制文件命令;
C:\Users\qi\.ssh\id_rsa.pub:Windows 本地 SSH 公钥文件路径;
root@50.118.*.*:远程服务器登录账号和 IP 地址;
/root/:服务器目标存放目录。
5.然后,使用“ssh 用户名@服务器IP”命令登录云服务器,再执行以下命令以创建 SSH 密钥认证目录。
mkdir -p ~/.ssh
6. 执行以下命令,将上传到服务器的公钥内容追加到 SSH 认证文件 authorized_keys 中。
cat /root/id_rsa.pub >> ~/.ssh/authorized_keys
7.依次执行以下命令设置文件权限,让 SSH 服务接受该公钥。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
8.以上就是Windows 设置 SSH 免密登录云服务器的完整步骤,接下来您可以在CMD中执行“ssh root@50.118.*.*”命令直接连接云服务器,而无需输入密码。

除了使用 ssh-keygen 生成 SSH 密钥对实现免密登录外,部分云厂商也支持直接添加 SSH 公钥,例如 VMRack 云服务商。VMRack 是一家全球云基础设施服务商,提供 CN2 GIA、AS9929、CMIN2 等精品线路云服务器,以及 CDN、对象存储、云转码等服务,满足企业与开发者的多场景部署需求。
接下来,本文将以 VMRack 云服务商为例,为您讲解怎么通过云厂商提供的 SSH 密钥实现免密登录。
1.首先,在 VMRack 官网注册一个账号并登录,然后进入控制台依次选择“云计算” > “SSH 密钥”,再点击“创建SSH密钥”。

2.在弹出的窗口中,设置 SSH 密钥的名称,再选择“创建密钥”并点击“保存”。

3.保存之后会自动下载一个名为“L2.pem”文件,该文件就是私钥文件,您需要记住该文件的存放路径。

说明:教程中的“L2.pem”文件路径是C:\ssh。
4.在 VMRack 控制台选择“云服务器”,并在右侧选择您要设置 SSH 免密登录的云服务器,再点击“管理”。

5.在云服务器详细中选择“SSH密钥”,再点击“创建SSH密钥”。

6.在弹出的对话框中选择刚刚创建名为“L2”的SSH密钥,再点击“保存”,这样改云服务器即与 L2 SSH 密钥关联起来了。

7.在 Windows 电脑上打开 Windows PowerShell 执行以下命令,以删除 L2 私钥文件在 Windows 默认继承的权限。
icacls C:\ssh\L2.pem /inheritance:r
说明:将“C:\ssh\L2.pem”路径替换为您的私钥文件存放路径。
8.然后,再执行以下命令给当前 Windows 用户“qi”添加读取权限。
icacls C:\ssh\L2.pem /grant:r qi:R
9. 执行以下命令,在Windows OpenSSH 默认读取目录(C:\Users\qi\.ss)中创建 config 文件。
notepad C:\Users\qi\.ssh\config
注意:config 文件是没有后缀名的,也不是txt文件。
10.进入C:\Users\qi\.ssh路径,打开 config 文件写入 SSH 配置(如图所示)并保存。

说明:
Host:设置登录别名;
HostName:服务器 IP;
User:登录用户名;
IdentityFile:指定私钥路径。
11.然后,您就可以在Windows PowerShell 中执行“ssh L2”命令即可免密登录云服务器。

在这篇文章中,为大家介绍了两种Windows 通过 SSH 免密登录云服务器的方法。一种是使用Windows 系统自带的 OpenSSH 功能,另一种是使用使用云服务商提供的 SSH 密钥实现免密登录。两种方法都能轻松实现 SSH 免密登录,您可以根据自己的需要选择适合自己的方法。