ssh-keygen -t rsa
并按提示操作即可创建 ssh 密钥。创建SSH密钥是实现安全远程登录的关键步骤,它通过公钥和私钥对进行身份验证,以下是详细的创建SSH密钥的步骤:
生成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
),执行命令后,系统会提示您输入旧密码短语和新密码短语。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1397621.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复