在 Windows 10 上实现免密码 SSH 登录
前言
在日常开发中,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 密钥,可以通过以下步骤创建:
打开终端(命令提示符或者 PowerShell)。
输入以下命令生成 SSH 密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
按提示操作(默认存储路径为
~/.ssh/id_rsa)。输入密钥存储位置和密码(如果不想设置密码,可以直接按回车跳过)。
4. 将 SSH 密钥添加到 ssh-agent
接下来,需要将生成的私钥添加到 ssh-agent 中,以便在连接时自动使用密钥进行认证。
打开终端(命令提示符或者 PowerShell)。
输入以下命令加载密钥:
ssh-add ~/.ssh/id_rsa
这样,ssh-agent 就会管理你的私钥,免去每次连接时输入密码的需求。
5. 将公钥复制到远程服务器
为了让远程服务器识别你的 SSH 密钥,你需要将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中。你可以手动复制公钥,或者使用 ssh-copy-id 工具来完成:
复制公钥:
cat ~/.ssh/id_rsa.pub
将公钥复制到远程服务器的
~/.ssh/authorized_keys文件中。
如果你使用 ssh-copy-id,命令如下:
ssh-copy-id user@remote_host
6. 测试免密码 SSH 登录
完成以上配置后,你可以尝试连接远程服务器:
ssh user@remote_host
如果配置成功,你将无需输入密码即可直接连接。
总结
通过以上步骤,你可以轻松实现 Windows 10 上的免密码 SSH 登录功能,类似于 Linux 上的 ssh-add。这种配置不仅提升了连接的效率,也使得远程管理变得更加便捷和安全。如果遇到任何问题,可以参考本文的解决步骤进行排查。
参考资料
- OpenSSH 官网 - https://www.openssh.com/
- Windows 10 OpenSSH 客户端文档 - https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
在 Windows 10 上实现免密码 SSH 登录的更多相关文章
- Linux A机器免密码SSH登录B机器
一.问题 如上,A机器经常需远程操作B机器,传输文件到B机器,每次输入帐号密码过于繁琐,下文通过ssh公钥能解免密码操作问题. 二.解决 1.方案 SSH认证采用公钥与私钥认证方式. 2.步骤 1) ...
- 两台linux之间建立信任关系,实现免密码ssh远程登录或scp数据上传
两台linux之间建立信任关系,实现免密码远程登录或数据上传 1.执行ssh-keygen命令,生成建立安全信任关系的证书: linux1上:执行命令 ssh-keygen -t rsa 在程序提 ...
- Windows 10 上的 Git 如何清除密码? Git Credential Manager for Windows
Windows 10 上的 Git 如何清除密码? 因为一台新的电脑是 Windows 10 在第一次使用 Git 要求输入密码时把密码给输错了. 之前提交都是说 Token 错了,不再出现提示密码. ...
- 服务器之间免密码ssh登陆
配置服务器f1(192.168.1.1)与服务器f2(192.168.1.2)之间免密码ssh登陆 一.首先,配置服务器主机名为f1.f2 1.更改/etc/sysconfig下的network文件, ...
- ssh免密码快速登录配置
使用ssh登录服务器的时候,需要输入ip地址.端口.用户名.密码等信息,比较麻烦,容易输错.还好,通过客户端和服务器的配置参数,可实现免密码快速登录.服务器可通过保存客户端的公钥,用于验证客户端的身份 ...
- 免密码 ssh 到其它机器
背景:在配置 hadoop 的时候这样设置会比较方便.目标:A 机器上输入 ssh root@B 可以直接访问,不需要输入密码 步骤: 首先在 A 机器上生成密钥对,一路回车 1 ssh-keygen ...
- 如何在 Windows 10 上安装 WSL 2
翻译自 Joey Sneddon 2020年10月30日的文章<How to Install WSL 2 on Windows 10> [1] 如果您想在最新的 Windows 版本中尝试 ...
- 在Windows 10上安装Oracle 11g数据库出现的问题及解决
在Windows 10上安装Oracle 11g数据库,并且很多次出现过:当安装的进度条进行到快要结束的时候弹出一个提示框.如下: [Java(TM)2 Platform Standard Editi ...
- Windows 10 上,Edge 浏览器不支持插件,因此将不运行 Java
在 Windows 10 上,Edge 浏览器不支持插件,因此将不运行 Java.微软想干嘛?
- DB 查询分析器 6.04 在 Windows 10 上的安装与运行展示
DB查询分析器 6.04 在 Windows 10 上的安装与运行展示 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员 http://www.csdn.net/art ...
随机推荐
- Shiro 漏洞复现
Shiro 漏洞复现 shiro是什么? ApacheShiro是一个灵活且全面的Java安全框架,它为现代应用程序提供了认证.授权.加密和会话管理等核心安全功能. shiro组件识别 1.在访问及登 ...
- 【原创】linux实时操作系统xenomai看门狗(watchdog)机制及作用介绍
版权声明:本文为本文为博主原创文章,转载请注明出处 https://www.cnblogs.com/wsg1100.如有错误,欢迎指正. 目录 一.前言 PREEMPT-RT(RT Throttlin ...
- 新型大语言模型的预训练与后训练范式,Meta的Llama 3.1语言模型
前言:大型语言模型(LLMs)的发展历程可以说是非常长,从早期的GPT模型一路走到了今天这些复杂的.公开权重的大型语言模型.最初,LLM的训练过程只关注预训练,但后来逐步扩展到了包括预训练和后训练在内 ...
- 【返回值】定义泛型JSON
/** * 定义统一的Json结构 * 由于封装的Json数据的类型不确定,所以在定义统一的json结构时,我们需要用到泛型. * 统一的json结构中属性包括:数据.状态码.提示信息即可. * 构造 ...
- 移动端NES网页模拟器(3)
前言 前面2个章节已经封装好了摇杆和NES虚拟按键,现在配合jsnes这个包来完成一个移动端版的NES模拟器. 这是插件的github地址:bfirsh/jsnes 这个包可以直接拿来用,但是没有适配 ...
- ant 表格中的分页属性
组件中添加 属性 :pagination="paginationProps" 定义paginationprops const paginationProps = reactive( ...
- 前端每日一知之web攻击方式
脑图在线链接 本文内容依据[js每日一题]公众号精彩文章总结而来
- OpenTelemetry.NET API
OpenTelemetry.NET API Status and Releases Tracing Metrics Logging 1.0 Alpha Beta 安装 dotnet add packa ...
- Alpine中安装telnet
lpine Linux是一个基于musl libc和busybox的安全轻量的Linux发行版. 在Alpine中安装telnet,并不是apk add telnettelnet被移入子包busybo ...
- 【转载】基于timestamp和nonce的防重放攻击
https://www.cnblogs.com/mymelody/p/7325325.html 以前总是通过timestamp来防止重放攻击,但是这样并不能保证每次请求都是一次性的.今天看到了一篇 ...