首页 > 系统相关 >在 Windows 使用 PuTTYgen 上生成 SSH 密钥

在 Windows 使用 PuTTYgen 上生成 SSH 密钥

时间:2024-04-30 15:24:56浏览次数:27  
标签:私钥 Windows 密码 PuTTY SSH PuTTYgen 密钥

在 Windows 使用 PuTTYgen 上生成 SSH 密钥

转自: https://www.linuxidc.com/Linux/2019-08/159955.htm

Secure Shell(SSH) 是一种加密网络协议,用于客户端和服务器之间的安全连接,并支持各种身份验证机制。

两种最流行的机制是基于密码的身份验证和基于公钥的身份验证。使用 SSH 密钥比传统的密码验证更安全,更方便。

本教程介绍如何使用 PuTTYgen 在 Windows 上生成 SSH 密钥。我们还将向您展示如何设置基于 SSH 密钥的身份验证,并在不输入密码的情况下连接到远程 Linux 服务器。

下载 PuTTYgen

PuTTYgen 是一个开源实用程序,允许您为最流行的 Windows SSH 客户端 PuTTY 生成 SSH 密钥。

PuTTYgen 作为独立的可执行文件提供,它也是 PuTTY.msi 安装包的一部分。如果您没有安装 PuTTYgen ,请转到 PuTTY 下载页面并下载 PuTTY 安装包。安装很简单,双击安装包并按照说明操作。

使用 PuTTYgen 创建 SSH 密钥

要使用 PuTTYgen 在 Windows 上生成 SSH 密钥对,请执行以下步骤:

  1. 启动 PuTTYgen 工具,双击其 .exe 文件或转到 Windows 开始菜单→ PuTTY (64位)→ PuTTYgen 。

    启动PuTTYgen工具

    对于 Type of key to generate,保留默认 RSA 。对于大多数人来说,Number of bits in a generated key 2048 就足够了。或者,您可以将其更改为 4096 。

  2. 单击 Generate 按钮开始生成新密钥对的过程。

    生成 SSH 密钥 PuTTYgen

    系统会要求您将鼠标移到 Key 部分的空白区域以生成一些随机性。移动指针时,绿色进度条将前进。这个过程应该需要几秒钟。

  3. 生成过程完成后,公钥将显示在窗口中。

    Passphrase PuTTYgen

    (可选)如果要使用密码,请在“Key passphrase”字段中键入密码,并在“Confirm passphrase”字段中确认相同的密码。如果您选择使用密码短语,则可以通过保护私钥免遭未经授权的使用来获得额外的安全保护。

    如果设置密码,则每次使用私钥时都需要输入密码。

  4. 单击“保存私钥”按钮保存私钥。您可以使用 .ppk 扩展名( PuTTY 私钥)将文件保存在任何目录中,但建议您将其保存在可以轻松找到它的位置。为私钥文件使用描述性名称是很常见的。

    或者,您也可以保存公钥,但稍后可以通过加载私钥重新生成公钥。

  5. 右键单击标记为“Public key for pasting into OpenSSH authorized_keys file”的文本字段,然后单击“全选”选择所有字符。打开文本编辑器,粘贴字符并保存。确保你粘贴整个密钥。建议将文件保存在保存私钥的同一目录中,使用相同名称的私钥和 .txt 或 .pub 作为文件扩展名。

    公钥PuTTYgen

    这是您将其添加到 Linux 服务器的关键。

将公钥复制到 Linux 服务器

现在您已生成 SSH 密钥对,下一步是将公钥复制到要管理的服务器。

启动 PuTTY 程序并登录到远程 Linux 服务器。

如果您的用户 SSH 目录不存在,请使用 mkdir 命令创建它并设置正确的权限:

mkdir -p ~/.ssh
chmod 0700 ~/.ssh

用文本编辑器打开 ~/.ssh/authorized_keys 文件, 并粘贴在步骤 4 中复制的公钥到 ~/.ssh/authorized_keys 中:

nano ~/.ssh/authorized_keys

整个公钥文本应该在一行上。

运行以下 chown 命令以确保只有您的用户可以读写该 ~/.ssh/authorized_keys 文件:

chmod 0600 ~/.ssh/authorized_keys

使用 SSH 密钥登录服务器

Pageant 是一种 PuTTY SSH 身份验证代理,它将私钥保存在内存中。 Pageant 二进制文件是 PuTTY.msi 安装包的一部分,可以通过转到 Windows 开始菜单→ PuTTY(64位) → Pageant 来启动。

当您启动 Pageant 时,它会在系统托盘中放置一个图标。双击图标,将打开 Pageant 窗口。

要加载密钥,请按“Add key”按钮,这将打开一个新文件对话框。找到私钥文件,然后按“打开”。如果您尚未设置密码,则会立即加载密钥。否则,系统将提示您输入密码。

加载密钥

输入密码, Pageant 将加载私钥。

完成上述步骤后,您应该能够登录到远程服务器而不会被提示输入密码。

要测试它,请打开一个新的 PuTTY SSH 会话并尝试登录到您的服务器。 PuTTY 将使用加载的密钥,您将在不输入密码的情况下登录 Linux 服务器。

禁用 SSH 密码验证

要为服务器添加额外的安全层,可以禁用 SSH 的密码身份验证。

在禁用 SSH 密码身份验证之前,请确保无需密码即可登录服务器,并且您登录的用户具有 sudo 权限。

登录到远程服务器并使用文本编辑器打开 SSH 配置文件 /etc/ssh/sshd_config :

sudo nano /etc/ssh/sshd_config

搜索以下指令并按如下方式进行修改:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

完成后,键入以下命令保存文件并重新启动 SSH 服务:

sudo systemctl restart ssh

此时,禁用基于密码的身份验证。

总结

在本教程中,您学习了如何生成新的 SSH 密钥对并设置基于 SSH 密钥的身份验证。您可以将相同的密钥添加到多个远程服务器。我们还向您展示了如何禁用 SSH 密码身份验证并为您的服务器添加额外的安全层。

默认情况下, SSH 侦听端口 22。  更改默认 SSH 端口将降低自动攻击的风险。

如果您遇到问题或有反馈,请在下面留言。

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-08/159955.htm

标签:私钥,Windows,密码,PuTTY,SSH,PuTTYgen,密钥
From: https://www.cnblogs.com/Jamesblog/p/18168061

相关文章

  • 自动批量实现linux机器ssh免密shell脚本
    要同时指定SSH端口和密码来实现非交互式地使用ssh-copy-id,可以使用sshpass来实现。sshpass是一个用于通过非交互方式输入密码的工具。下面是一个示例脚本,它使用sshpass、ssh-copy-id以及指定的端口号来实现这一目标:1#!/bin/bash23#检查是否提供了目标主机列表文件4i......
  • Windows Server 下 IIS 申请部署 Let's Encrypt 证书实现 免费 HTTPS
    certbot命令行搞了半天一直失败找到个工具Certify简单方便1、首先下载Certify下载到服务器上并安装。下载地址:https://certifytheweb.com/2、第一次启动程序时会弹出对话框让我们填写个邮箱地址,等证书快要过期的时候我们会收到续订证书的提醒邮件。这里我们填上常用的ema......
  • How to Jump Forward or Backward in VLC Media Player for 1 Second in Windows 10?
    https://www.youtube.com/watch?v=4LkEecm4UX8&ab_channel=TechMeSpot HowtoJumpForwardorBackwardinVLCMediaPlayerfor1SecondinWindows10?Step1:OpentheVideoinVLCMediaPlayer,andthenpausethevideo.Step2:Clickon'Tools'......
  • vue.js 3 初学经验:开发环境搭建,Windows,nginx
    Windows11nginx-1.20.0"vue":"^3.4.21"--- 序章vue3开发,不需要后端服务业是可以的。在需要后端服务时,使用nginx来转发请求是很好的(个人开发者)。 注,还有什么其它方式吗?注,本文的后端服务是使用Java开发的HTTP接口。注,参考资料#2介绍了多个vue.js3.0项目......
  • Windows开源输入法 - RIME输入法
    前言#上一篇文章介绍了Windows下的包管理器,本文继续介绍输入法。事实上Windows的输入法生态比Linux/Mac丰富很多,不过很多国产输入法存在窃取隐私、植入广告、乱安装流氓软件等问题,现在有开源的RIME输入法可以选择,何必受这气呢......
  • 2024年,提升Windows开发和使用体验实践 - 小工具篇
    前言#本来是一篇文章的,不知不觉写成了系列。其实开工那几天就已经写好了长文,这几天一忙就没连着发了。本文介绍一些Windows上用的小工具。美化/折腾/小工具#虽然这是在用Windows,但阻止不了我想折腾的心!把玩Linux的那些花样拿出来,虽然Windows可以自定义的程度没有Li......
  • windows使用samba共享linux文件服务
    一、服务结构服务端:linux服务器192.168.2.251客户端:windows服务器192.168.2.252二、linux部署samba服务端1.安装samba~]#yum-yinstallsamba2.创建共享文件夹~]#mkdir/mnt/svr33.创建samba用户~]#smbpasswdwyg或者~]#pdbedit-a-utest密码:wyg.1234.编......
  • 稳扎稳打 部署丝滑 开源即时通讯(IM)项目OpenIM源码部署流程(linux windows mac)
    背景OpenIM包含多个关键组件,每个都是系统功能必不可少的一部分。具体来说,MongoDB用于持久化存储;Redis用作缓存;Kafka用于消息队列;Zookeeper用于服务发现;Minio用于对象存储。这些组件的众多可能会增加部署的复杂性。此外,系统包含多个微服务模块,这要求有效管理进程的启动、停止......
  • Linux中ssh
    ssh原理SSH(SecureShell)是一种用于安全访问远程计算机的网络协议。SSH使用加密技术来确保通信的安全性,其中包括使用公钥加密和私钥解密的方法。下面是SSH公钥传输的基本原理:生成密钥对:在使用SSH进行通信之前,首先需要在客户端生成一对密钥,包括公钥和私钥。通常使用RSA或DSA算法......
  • Windows下绑定线程到指定的CPU核心
    在某些场景下,需要把程序绑定到指定CPU核心提高执行效率。通过微软官方文档查询到Windows提供了两个Win32函数:SetThreadAffinityMask和SetProcessAffinityMask为指定线程和进程设置处理器关联掩码。通俗的讲就是在指定的CPU核心上执行线程或者进程。这里的CPU核心指的是逻辑核心......