前言

在日常开发中,SSH(Secure Shell)作为一种安全的远程登录协议,广泛用于 Linux 和 Windows 系统之间的连接。为了提高效率,我们可以通过配置免密码登录,省去每次连接时输入密码的繁琐过程。

本文将详细介绍如何在 Windows 10 上配置 SSH 免密码登录,类似于 Linux 系统上的 ssh-add 功能。

1. 准备工作:确保 OpenSSH 已安装

在开始配置之前,确保你的 Windows 10 上已安装 OpenSSH 客户端。这里我们先检查并安装 OpenSSH:

  • 打开 设置 -> 应用 -> 可选功能,查找是否有 OpenSSH 客户端OpenSSH 服务
  • 如果没有安装,点击 添加功能,选择 OpenSSH 客户端 进行安装。

2. 启动 OpenSSH Authentication Agent

要实现免密码登录,我们需要启用 ssh-agent 服务,这个服务负责存储和管理 SSH 密钥。

  • 打开 服务管理器:按下 Win + R,输入 services.msc,然后回车。
  • 在服务列表中找到 OpenSSH Authentication Agent,右键点击并选择 启动,然后将启动类型设置为 自动

或者,你也可以通过 PowerShell 来启动 ssh-agent 服务:

Start-Service ssh-agent
Set-Service -Name ssh-agent -StartupType Automatic

3. 生成 SSH 密钥对

如果你还没有生成 SSH 密钥,可以通过以下步骤创建:

  1. 打开终端(命令提示符或者 PowerShell)。

  2. 输入以下命令生成 SSH 密钥:

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

    按提示操作(默认存储路径为 ~/.ssh/id_rsa)。

  3. 输入密钥存储位置和密码(如果不想设置密码,可以直接按回车跳过)。

4. 将 SSH 密钥添加到 ssh-agent

接下来,需要将生成的私钥添加到 ssh-agent 中,以便在连接时自动使用密钥进行认证。

  1. 打开终端(命令提示符或者 PowerShell)。

  2. 输入以下命令加载密钥:

    ssh-add ~/.ssh/id_rsa

这样,ssh-agent 就会管理你的私钥,免去每次连接时输入密码的需求。

5. 将公钥复制到远程服务器

为了让远程服务器识别你的 SSH 密钥,你需要将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中。你可以手动复制公钥,或者使用 ssh-copy-id 工具来完成:

  1. 复制公钥:

    cat ~/.ssh/id_rsa.pub
  2. 将公钥复制到远程服务器的 ~/.ssh/authorized_keys 文件中。

如果你使用 ssh-copy-id,命令如下:

ssh-copy-id user@remote_host

6. 测试免密码 SSH 登录

完成以上配置后,你可以尝试连接远程服务器:

ssh user@remote_host

如果配置成功,你将无需输入密码即可直接连接。

总结

通过以上步骤,你可以轻松实现 Windows 10 上的免密码 SSH 登录功能,类似于 Linux 上的 ssh-add。这种配置不仅提升了连接的效率,也使得远程管理变得更加便捷和安全。如果遇到任何问题,可以参考本文的解决步骤进行排查。

参考资料

在 Windows 10 上实现免密码 SSH 登录的更多相关文章

  1. Linux A机器免密码SSH登录B机器

    一.问题 如上,A机器经常需远程操作B机器,传输文件到B机器,每次输入帐号密码过于繁琐,下文通过ssh公钥能解免密码操作问题. 二.解决 1.方案 SSH认证采用公钥与私钥认证方式. 2.步骤 1) ...

  2. 两台linux之间建立信任关系,实现免密码ssh远程登录或scp数据上传

    两台linux之间建立信任关系,实现免密码远程登录或数据上传 1.执行ssh-keygen命令,生成建立安全信任关系的证书: linux1上:执行命令  ssh-keygen  -t rsa 在程序提 ...

  3. Windows 10 上的 Git 如何清除密码? Git Credential Manager for Windows

    Windows 10 上的 Git 如何清除密码? 因为一台新的电脑是 Windows 10 在第一次使用 Git 要求输入密码时把密码给输错了. 之前提交都是说 Token 错了,不再出现提示密码. ...

  4. 服务器之间免密码ssh登陆

    配置服务器f1(192.168.1.1)与服务器f2(192.168.1.2)之间免密码ssh登陆 一.首先,配置服务器主机名为f1.f2 1.更改/etc/sysconfig下的network文件, ...

  5. ssh免密码快速登录配置

    使用ssh登录服务器的时候,需要输入ip地址.端口.用户名.密码等信息,比较麻烦,容易输错.还好,通过客户端和服务器的配置参数,可实现免密码快速登录.服务器可通过保存客户端的公钥,用于验证客户端的身份 ...

  6. 免密码 ssh 到其它机器

    背景:在配置 hadoop 的时候这样设置会比较方便.目标:A 机器上输入 ssh root@B 可以直接访问,不需要输入密码 步骤: 首先在 A 机器上生成密钥对,一路回车 1 ssh-keygen ...

  7. 如何在 Windows 10 上安装 WSL 2

    翻译自 Joey Sneddon 2020年10月30日的文章<How to Install WSL 2 on Windows 10> [1] 如果您想在最新的 Windows 版本中尝试 ...

  8. 在Windows 10上安装Oracle 11g数据库出现的问题及解决

    在Windows 10上安装Oracle 11g数据库,并且很多次出现过:当安装的进度条进行到快要结束的时候弹出一个提示框.如下: [Java(TM)2 Platform Standard Editi ...

  9. Windows 10 上,Edge 浏览器不支持插件,因此将不运行 Java

    在 Windows 10 上,Edge 浏览器不支持插件,因此将不运行 Java.微软想干嘛?

  10. DB 查询分析器 6.04 在 Windows 10 上的安装与运行展示

    DB查询分析器 6.04 在 Windows 10 上的安装与运行展示 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员 http://www.csdn.net/art ...

随机推荐

  1. Shiro 漏洞复现

    Shiro 漏洞复现 shiro是什么? ApacheShiro是一个灵活且全面的Java安全框架,它为现代应用程序提供了认证.授权.加密和会话管理等核心安全功能. shiro组件识别 1.在访问及登 ...

  2. 【原创】linux实时操作系统xenomai看门狗(watchdog)机制及作用介绍

    版权声明:本文为本文为博主原创文章,转载请注明出处 https://www.cnblogs.com/wsg1100.如有错误,欢迎指正. 目录 一.前言 PREEMPT-RT(RT Throttlin ...

  3. 新型大语言模型的预训练与后训练范式,Meta的Llama 3.1语言模型

    前言:大型语言模型(LLMs)的发展历程可以说是非常长,从早期的GPT模型一路走到了今天这些复杂的.公开权重的大型语言模型.最初,LLM的训练过程只关注预训练,但后来逐步扩展到了包括预训练和后训练在内 ...

  4. 【返回值】定义泛型JSON

    /** * 定义统一的Json结构 * 由于封装的Json数据的类型不确定,所以在定义统一的json结构时,我们需要用到泛型. * 统一的json结构中属性包括:数据.状态码.提示信息即可. * 构造 ...

  5. 移动端NES网页模拟器(3)

    前言 前面2个章节已经封装好了摇杆和NES虚拟按键,现在配合jsnes这个包来完成一个移动端版的NES模拟器. 这是插件的github地址:bfirsh/jsnes 这个包可以直接拿来用,但是没有适配 ...

  6. ant 表格中的分页属性

    组件中添加 属性 :pagination="paginationProps" 定义paginationprops const paginationProps = reactive( ...

  7. 前端每日一知之web攻击方式

    脑图在线链接 本文内容依据[js每日一题]公众号精彩文章总结而来

  8. OpenTelemetry.NET API

    OpenTelemetry.NET API Status and Releases Tracing Metrics Logging 1.0 Alpha Beta 安装 dotnet add packa ...

  9. Alpine中安装telnet

    lpine Linux是一个基于musl libc和busybox的安全轻量的Linux发行版. 在Alpine中安装telnet,并不是apk add telnettelnet被移入子包busybo ...

  10. 【转载】基于timestamp和nonce的防重放攻击

    https://www.cnblogs.com/mymelody/p/7325325.html   以前总是通过timestamp来防止重放攻击,但是这样并不能保证每次请求都是一次性的.今天看到了一篇 ...