当前位置:首页 > 行业动态 > 正文

如何创建SSH密钥?

在终端中输入 ssh-keygen -t rsa 并按提示操作即可创建 ssh 密钥。

创建SSH密钥是实现安全远程登录的关键步骤,它通过公钥和私钥对进行身份验证,以下是详细的创建SSH密钥的步骤:

如何创建SSH密钥?  第1张

生成SSH密钥对

在本地机器上打开终端应用程序,然后使用以下命令生成SSH密钥对:

ssh-keygen -t rsa -b 4096

这条命令会生成一个4096位的RSA密钥对,执行命令后,系统会提示您输入文件名以保存密钥(默认情况下保存在~/.ssh/id_rsa中),以及是否设置密码短语(可选),按回车键接受默认值或输入自定义路径和密码短语。

查看生成的密钥文件

生成密钥对后,您的SSH目录(通常是~/.ssh)中将包含以下两个文件:

id_rsa:私钥文件,必须妥善保管,不得外泄。

id_rsa.pub:公钥文件,用于在远程服务器上进行身份验证。

将公钥复制到远程服务器

有几种方法可以将公钥复制到远程服务器:

方法一:使用ssh-copy-id命令

ssh-copy-id user@remote_host

此命令会自动将公钥复制到远程服务器的~/.ssh/authorized_keys文件中,并提示您输入远程服务器用户的密码。

方法二:手动复制公钥

如果无法使用ssh-copy-id,可以手动复制公钥,首先查看公钥内容:

cat ~/.ssh/id_rsa.pub

将输出的内容复制并粘贴到远程服务器上的~/.ssh/authorized_keys文件中,确保文件权限正确:

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

测试SSH密钥身份验证

完成上述步骤后,您可以使用以下命令测试SSH密钥身份验证是否正常工作:

ssh user@remote_host

如果一切顺利,您将无需输入密码即可登录到远程服务器。

高级选项:使用SSH代理

SSH代理允许您在通过SSH连接到远程服务器时使用本地机器上的SSH密钥,这对于跳板服务器等复杂的网络配置特别有用,以下是使用SSH代理的步骤:

在本地机器上编辑SSH配置文件:

nano ~/.ssh/config

在文件中添加以下内容:

Host remote_server
    ForwardAgent yes

将remote_server替换为远程服务器的别名或IP地址,保存并关闭文件。

连接到跳板服务器:

ssh -A user@jump_server

从跳板服务器连接到目标远程服务器:

ssh user@remote_server

使用SSH代理后,您无需在本地机器上复制和添加SSH密钥,而是直接使用本地机器上的密钥进行远程身份验证。

FAQs问答

Q1: 什么是SSH密钥?

A1: SSH密钥是一种安全的身份验证方法,由公钥和私钥组成,公钥用于加密数据,私钥用于解密数据,通过SSH密钥,可以实现无需密码的安全远程登录。

Q2: 如何更改SSH密钥的密码短语?

A2: 要更改SSH密钥的密码短语,可以使用以下命令:

ssh-keygen -p [-f keyfile] [-q]

keyfile是您的私钥文件(默认为~/.ssh/id_rsa),执行命令后,系统会提示您输入旧密码短语和新密码短语。

0