Windows环境下利用ssh免密码登录linux服务器

在 Windows 环境下,你可以使用多种工具来设置和使用 SSH 密钥对进行身份验证。最常用的方法是通过 Windows 自带的 OpenSSH 客户端(适用于较新的 Windows 版本)或使用第三方软件如 PuTTY 和 Git Bash。以下是基于这些工具的具体步骤:

使用 Windows 自带的 OpenSSH 客户端

从 Windows 10 版本 1809 开始,Windows 包含了 OpenSSH 的客户端工具,它们默认是可选功能。

创建密钥对

打开命令提示符、PowerShell 或者 Windows Terminal,然后运行以下命令来生成密钥对:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

这将创建一个 RSA 类型的密钥对,默认保存位置为 C:\Users\<YourUsername>\.ssh\ 目录下。

将公钥复制到远程服务器

如果你的 Windows 系统已经安装并启用了 OpenSSH 客户端,你可以使用 ssh-copy-id 命令(如果可用),或者手动复制公钥内容到远程服务器上的 ~/.ssh/authorized_keys 文件中【注意:远程linux这里是authorized_keys而不是id_ras.pub】。

对于手动复制,可以这样做:

  1. 打开记事本或其他文本编辑器。

  2. 将 id_rsa.pub 文件的内容复制到剪贴板。

  3. 使用 SSH 登录到远程服务器。

  4. 编辑或创建 ~/.ssh/authorized_keys 文件,并将公钥粘贴进去。【我用的是这种方法

  5. 设置正确的权限:

chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys

测试连接

尝试使用 SSH 连接到远程服务器以确保一切正常工作【到此已经成功】:

ssh user@remote_host

如果这里远程拒绝,则需要参照这个文章,开放root的ssh登录权限链接地址

使用 PuTTY 和 Pageant

PuTTY 是一个流行的 Windows SSH 客户端,它有自己的密钥生成工具 PuTTYgen 和密码代理 Pageant。

创建密钥对

  1. 打开 PuTTYgen 并生成一个新的密钥对。【我没有新生成,即公钥仍然是那个id_rsa.pub,而是Load刚才生成的id_rsa,之后保存为一个id_rsa.ppk文件,以便下面使用

  2. 保存私钥(*.ppk 文件)和公钥(通常是一个文本框中的字符串)。

将公钥添加到远程服务器

按照前面提到的手动方法,将公钥内容添加到远程服务器的 ~/.ssh/authorized_keys 文件中。【这里我没修改这个,仍然使用的是上面那个

使用 Pageant 缓存私钥

  1. 启动 Pageant。

  2. 添加你的 *.ppk 私钥文件到 Pageant 中。

  3. 使用 PuTTY 连接到远程服务器,Pageant 会自动处理认证过程。【非常方便

使用 Git Bash

如果你安装了 Git for Windows,那么你也可以使用 Git Bash 来创建和管理 SSH 密钥对。Git Bash 内置了 OpenSSH 工具,因此你可以像在 Linux 环境中那样使用相同的命令。

选择一种适合你的方法,根据上面的指南完成设置。如果你遇到任何问题,记得检查错误信息,并确保所有路径和权限都设置正确。