如何创建SSH密钥对?
- 行业动态
- 2024-12-10
- 2
创建SSH密钥对的步骤如下:,,1. 打开终端。,2. 输入命令 ssh-keygen -t rsa。,3. 按提示操作,完成生成。
创建SSH密钥对是确保远程服务器和客户端之间安全通信的重要步骤,以下是详细的教程,包括在Linux和Windows系统上生成SSH密钥对的步骤:
Linux系统上创建SSH密钥对
1. 打开终端
在本地机器上打开终端应用程序。
2. 生成SSH密钥对
使用以下命令生成SSH密钥对:
ssh-keygen -t rsa -b 4096
这将生成一个4096位的RSA密钥对,您可以选择其他密钥类型和位数,但RSA是最常用的。
3. 提供密钥保存位置和密码(可选)
系统会提示您提供密钥保存位置和可选的密码,按回车键接受默认值或输入自定义路径和密码。
示例如下:
Enter file in which to save the key (/home/username/.ssh/id_rsa): [Press Enter] Enter passphrase (empty for no passphrase): [Type a passphrase] Enter same passphrase again: [Type passphrase again]
4. 生成密钥对
系统会生成公钥(id_rsa.pub)和私钥(id_rsa)文件,并显示密钥指纹等相关信息。
5. 将公钥添加到远程服务器
在本地生成SSH密钥对后,接下来需要将公钥添加到远程SSH服务器,以便进行身份验证。
复制公钥内容:
cat ~/.ssh/id_rsa.pub
终端会显示公钥内容,复制该内容,或者使用其他编辑器打开公钥文件并复制其内容。
登录远程服务器:
ssh username@remote_server
将username替换为您在远程服务器上的用户名,remote_server替换为远程服务器的IP地址或域名。
创建.ssh目录(如果不存在):
mkdir -p ~/.ssh
编辑authorized_keys文件:
nano ~/.ssh/authorized_keys
如果文件已存在,请将光标移到文件的末尾,如果文件不存在,则创建一个新文件并打开编辑器。
将公钥粘贴到authorized_keys文件中,确保将整个公钥粘贴为一行,并保存文件。
设置文件权限:
chmod 600 ~/.ssh/authorized_keys
退出远程服务器:
exit
Windows系统上创建SSH密钥对
1. 下载PuTTYgen工具
PuTTYgen是一个开源实用程序,允许您为最流行的Windows SSH客户端PuTTY生成SSH密钥,如果您没有安装PuTTYgen,请转到PuTTY下载页面并下载PuTTY安装包,安装很简单,双击安装包并按照说明操作。
2. 启动PuTTYgen工具
启动PuTTYgen工具,双击其.exe文件或转到Windows开始菜单→ PuTTY → PuTTYgen。
3. 创建SSH密钥
保留默认RSA,对于大多数人来说,Number of bits in a generated key 2048就足够了,或者,您可以将其更改为4096,单击Generate按钮开始生成新密钥对的过程。
系统会要求您将鼠标移到Key部分的空白区域以生成一些随机性,移动指针时,绿色进度条将前进,这个过程应该需要几秒钟。
生成过程完成后,公钥将显示在窗口中。
(可选)如果要使用密码,请在“Key passphrase”字段中键入密码,并在“Confirm passphrase”字段中确认相同的密码,如果您选择使用密码短语,则可以通过保护私钥免遭未经授权的使用来获得额外的安全保护。
如果设置密码,则每次使用私钥时都需要输入密码。
单击“Save private key”按钮保存私钥,您可以使用.ppk扩展名(PuTTY私钥)将文件保存在任何目录中,但建议您将其保存在可以轻松找到它的位置,为私钥文件使用描述性名称是很常见的。
或者,您也可以保存公钥,但稍后可以通过加载私钥重新生成公钥。
右键单击标记为“Public key for pasting into OpenSSH authorized_keys file”的文本字段,然后单击“全选”选择所有字符,打开文本编辑器,粘贴字符并保存,确保你粘贴整个密钥,建议将文件保存在保存私钥的同一目录中,使用相同名称的私钥和.txt或.pub作为文件扩展名。
4. 将公钥复制到Linux服务器
现在您已生成SSH密钥对,下一步是将公钥复制到要管理的服务器。
启动PuTTY程序并登录到远程Linux服务器。
如果您的用户SSH目录不存在,请使用mkdir命令创建它并设置正确的权限:
mkdir -p ~/.ssh chmod 0700 ~/.ssh
用文本编辑器打开~/.ssh/authorized_keys文件,并粘贴在步骤3中复制的公钥到~/.ssh/authorized_keys中:
nano ~/.ssh/authorized_keys
整个公钥文本应该在一行上。
运行以下命令以确保只有您的用户可以读写该~/.ssh/authorized_keys文件:
chmod 600 ~/.ssh/authorized_keys
5. 使用SSH密钥登录服务器
Pageant是一种PuTTY SSH身份验证代理,它将私钥保存在内存中,Pageant二进制文件是PuTTY.msi安装包的一部分,可以通过转到Windows开始菜单→ PuTTY → Pageant来启动。
当您启动Pageant时,它会在系统托盘中放置一个图标,双击图标,将打开Pageant窗口。
要加载密钥,请按“Add key”按钮,这将打开一个新文件对话框,找到私钥文件,然后按“打开”,如果您尚未设置密码,则会立即加载密钥,否则,系统将提示您输入密码,输入密码,Pageant将加载私钥,完成上述步骤后,您应该能够登录到远程服务器而不会被提示输入密码,要测试它,请打开一个新的PuTTY SSH会话并尝试登录到您的服务器,PuTTY将使用加载的密钥,您将在不输入密码的情况下登录Linux服务器。
高级选项:使用SSH代理
SSH代理是一种方便的方法,允许您在通过SSH连接到远程服务器时使用本地机器上的SSH密钥,这对于跳板服务器等复杂的网络配置特别有用,以下是使用SSH代理的步骤:
1. 在本地机器上编辑SSH配置文件:
使用以下命令编辑SSH配置文件:
nano ~/.ssh/config
在文件中添加以下内容:
Host remote_server ForwardAgent yes
将remote_server替换为远程服务器的别名或IP地址,保存并关闭文件。
2. 连接到跳板服务器:
如果您使用了跳板服务器,可以使用以下命令连接到远程服务器:
ssh -A username@jump_server
从跳板服务器连接到目标远程服务器:在跳板服务器上,使用以下命令连接到目标远程服务器:
ssh username@remote_server
将remote_server替换为目标远程服务器的IP地址或域名,使用SSH代理后,您无需在本地机器上复制和添加SSH密钥,而是直接使用本地机器上的密钥进行远程身份验证。
常见问题与解答(FAQs)
Q1: 如果我已经有一个现有的SSH密钥对,如何将其添加到新的远程服务器?
A1: 您可以使用ssh-copy-id命令将现有公钥添加到新的远程服务器。
ssh-copy-id username@new_remote_server
Q2: 如何在多个远程服务器上使用同一个SSH密钥对?
A2: 您可以将公钥添加到每个远程服务器的~/.ssh/authorized_keys文件中,并确保私钥文件存储在安全的位置且不被泄露。
Q3: 如果我想更改现有的SSH密钥对的密码,该怎么办?
A3: 您可以使用以下命令更改现有私钥的密码:
ssh-keygen -p [private_key_file]
系统会提示您输入当前密码和新密码。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/366695.html