如何生成免密码连接服务器的SSH 密钥?

vps主机对比评测网 01-12 vps技术知识 568


使用SSH 密钥允许您无需密码即可登录服务器。站长非常喜欢用这个方法管理自用的linux云主机,毕竟服务器多了,密码如果长期设置为一样的,并且不愿意定期更改,将给服务器安全带来不稳定因素。本文简单描述了使用 Linux、Mac 或 Windows 以 OpenSSH 格式创建 SSH 密钥,适用于所有linux服务器实例。


使用 OpenSSH 创建 SSH 密钥

OpenSSH 是标准的,存在于 macOS 和大多数 Linux 发行版中。同样Windows 10 用户也可以安装,下方提供了安装说明。按照以下步骤使用 OpenSSH 实用程序创建 SSH 密钥。


1. 运行 ssh-keygen,替换您的电子邮件地址。

ssh-keygen -t ed25519 -C "admin@vpsvsvps.com"

命令中的邮箱替换成你自己常用的。

注意:如果您使用不支持 Ed25519 算法的遗留系统,请使用:

ssh-keygen -t rsa -b 4096 -C "admin@vpsvsvps.com"


默认情况下,密钥存储在~/.ssh目录中。大多数 SSH 客户端自动使用这些默认文件名:


算法:ED25519(首选)

公钥:id_ed25519.pub

私钥:id_ed25519


算法:RSA(至少 2048 位密钥大小)

公钥:id_rsa.pub

私钥:id_rsa


算法:DSA(已弃用)

公钥:id_dsa.pub

私钥:id_dsa


算法:ECDSA

公钥:id_ecdsa.pub

私钥:id_ecdsa


2. 按回车键将密钥保存在默认位置


Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/example/.ssh/id_ed25519):


3. 您可以为您的密钥输入密码。建议使用密码,但您也可以按回车绕过此提示。如果您使用密码,除非您还使用ssh-agent,否则每次使用密钥时都会输入密码短语。


Enter passphrase (empty for no passphrase):
Enter same passphrase again:


4. 您的密钥已生成并保存。


Your identification has been saved in /Users/example/.ssh/id_ed25519.
Your public key has been saved in /Users/example/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:qx6prR4Zo+VU7Fl8yivXzzzzzzzzJ/9NRnPbrC20w7g example@example.com
The key's randomart image is:
+--[ED25519 256]--+
|                 |
|     o .         |
|    o B o + .    |
|     B + + o +   |
|    = = S o o o  |
|   = + = O + +   |
|  . + B B = * .  |
|     = O   + o   |
|   .+o=.. E .    |
+----[SHA256]-----+



5. 备份私钥。密钥一旦丢失将无法找回。


6. 在使用 SSH 密钥连接到现有服务器之前,您需要将公钥添加到authorized_keys文件中


在 Windows 10 上安装 OpenSSH


OpenSSH 客户端是 Windows 10 1809 的可安装组件。


1. 启动“设置”,然后转到“应用程序” > “应用程序和功能” > “管理可选功能” 。


2. 查看列表中是否已安装OpenSSH 客户端。如果没有,则单击添加功能。


3. 找到OpenSSH 客户端,然后单击安装。


4. 或者,您也可以使用 PowerShell 安装 OpenSSH 客户端。


安装 OpenSSH 后,请按照上述说明创建 SSH 密钥。


使用 PuTTYgen 在 Windows 上创建 SSH 密钥

PuTTYgen 是 PuTTY 实用程序的一部分。它适用于所有版本的 Windows。


1. 下载最新版本的 PuTTY 实用程序。我们推荐 MSI Windows 安装程序包。


2. 安装包并运行 PuTTYgen。


3. 在程序窗口的底部,选择EdDSA类型。


4. 在右下角,将“用于生成此密钥的曲线”设置为Ed25519 (255 bits)。


5. 单击生成按钮。然后,在空白区域移动鼠标,生成一些随机数据。


6. 输入密钥注释,以便以后更容易识别密钥。


7. 必须妥善保管私钥,防止未经授权的使用。我们建议输入密钥密码以保护 SSH 密钥。


8. 单击保存私钥并安全地存储它。如果丢失,则无法恢复此文件。此文件是 PuTTY 格式的公钥/私钥对。您可以在以后使用 PuTTYgen 重新导入此文件以导出或转换您的公钥格式。


9. 单击转换>导出 OpenSSH 密钥。保存此文件并安全地存储它。该文件是 OpenSSH 格式的 SSH 私钥。如果您使用 PuTTY 以外的 SSH 客户端,则可能需要此文件。


10 . 选择用于粘贴到 OpenSSH authorized_keys 文件框中的公钥文本并将其保存到文件中。这是您的 OpenSSH 格式的公钥。


恢复丢失的公钥


如果您有权访问私钥,则可以使用 OpenSSH 恢复公钥。


将选项和带有选项的私钥路径传递给ssh-keygen。当 ssh-keygen 重新生成公共 SSH 密钥时,您可以将输出重定向到您选择的文件。-y-f


例如,重新生成公钥~/example_key并将输出发送到~/example_key.pub:


ssh-keygen -y -f ~/example_key > ~/example_key.pub


如果为密钥设置了密码,系统将提示您输入密码。


更改密钥的密码


您可以使用该选项更改私钥上的密码,并使用该-p选项传递密钥名称-f。


ssh-keygen -p -f ~/example_key


在提示处输入您的旧密码和新密码(两次)。


查看钥匙的指纹


使用选项打印密钥的 SHA256 指纹-l,并使用选项传递密钥名称-f。


ssh-keygen -l -f example_key


输出是这样的:


3072 SHA256:pqdEtfbmIRwqTk9PpApa7DMvAxqCA577vJ/FcgyUM0Q root@localhost (RSA).


将密钥传输到您的服务器


OpenSSH 包含一个实用程序,用于将密钥传输到您的服务器。使用此实用程序时,您必须使用 SSH 向您的服务器进行身份验证。


使用选项指定要传输的公钥-i。将示例替换为您的用户名和服务器的 IP 地址。

ssh-copy-id -i ~/.ssh/example_key.pub example_user@192.0.2.123


系统将提示您使用服务器进行身份验证并将密钥传输到远程服务器的authorized_keys文件。


关于 SSH 密钥格式

OpenSSH 6.5 在 2014 年引入了ED25519密钥,它们在大多数操作系统上都可用。人们认为 ED25519 密钥比RSA更安全,性能更好。如果您使用 RSA 密钥,美国国家科学技术研究院建议密钥大小至少为 2048 位。


更多其他相关文章


有关管理 SSH 密钥的更多信息,请参阅我们的其他文章:


使用 SSH 密钥部署新服务器


如何添加和删除 SSH 密钥


使用 SSH 密钥连接到服务器


为非根用户使用 SSH 密钥


本文由 vps主机对比评测网 刊发,转载请注明出处

本文链接: https://www.vpsvsvps.com/vps/a/5292.html

标签: ssh,ssh密钥,ssh连接服务器,linux主机

“如何生成免密码连接服务器的SSH 密钥?” 的相关文章

如何解决香港服务器电信线路慢的问题

有时候香港的服务器电信线路可能会变得缓慢,这可能会导致网站或应用程序的访问速度下降,给用户带来不便。本文将探讨一些解决香港服务器电信线路慢的问题的方法,以确保您...

使用CDN后如何才不暴露IP?

在广袤的互联网世界中,内容交付网络(CDN)如同守护神,确保将网页内容顺畅地传递给全球用户。然而,在这个数字圣殿中,隐藏着潜在的威胁 - 即IP地址的曝露。让我...

网站遭到ddos攻击,站长如何应对?

1. 如何应对网站ddos攻击? 在数字时代,网站被DDoS攻击是一种常见而破坏性的现象。本文将深入探讨DDoS攻击的本质,以及站长可以采取的切实可行的解决方案...

Nginx 如何配置访问IP的黑名单/白名单

在我们搭建好服务器后,通常使用nginx来对外提供网络服务,在遇到大规模攻击或网站内容被批量采集时,我们可以通过nginx的简单配置,来临时防范。 简单的防范方...

经费有限,网站防御该选择高防服务器还是CDN?

在网站管理的不断演变中,一个关键的决定经常让网站所有者感到困扰:是选择高防服务器还是内容交付网络(CDN)?本文旨在揭示这个困境的复杂性,引导您了解关键考虑因素...