在Linux系统中,SSH(Secure Shell)是一种通过加密保护网络连接的协议,可以在远程安全访问Linux系统。而SSH密钥认证是一种更安全、更方便的进行远程连接的方式,当配置好SSH密钥认证后,你可以通过密钥对(公钥和私钥)无需输入密码即可登录到远程Linux服务器。
生成SSH密钥对
首先,在本地机器上生成一对SSH密钥,其中包括一个公钥和一个私钥。
-
打开终端窗口,执行以下命令生成SSH密钥对:
ssh-keygen -t rsa -b 4096
这将在默认路径(
~/.ssh/id_rsa
)下生成一对RSA密钥。你也可以指定其他路径和密钥类型,根据自己的需求进行调整。 -
在生成密钥的过程中,你可以选择是否设置一个密码(也称为"passphrase")。密码可以提高密钥的安全性,但每次使用密钥时都需要输入该密码。如果你不希望输入密码,可以直接按Enter跳过密码设置。
-
完成后,你将在指定路径下看到生成的公钥(
id_rsa.pub
)和私钥(id_rsa
)。~/.ssh/id_rsa.pub # 公钥 ~/.ssh/id_rsa # 私钥
配置远程服务器
现在将你生成的公钥添加到远程Linux服务器上,以便建立受信任的连接。
-
在本地机器上运行以下命令,将生成的公钥复制到剪贴板:
cat ~/.ssh/id_rsa.pub | pbcopy
如果你使用的不是Mac系统,可以尝试将
pbcopy
替换为适合你系统的命令,如xclip
。 -
使用SSH连接到远程服务器,并将公钥添加到
~/.ssh/authorized_keys
文件中:ssh username@remote_server
-
如果在远程服务器上没有
.ssh
目录,请先创建:mkdir -p ~/.ssh
-
将公钥粘贴到
~/.ssh/authorized_keys
文件中:echo "粘贴你的公钥内容" >> ~/.ssh/authorized_keys
确保将其中的“粘贴你的公钥内容”替换为你实际复制的公钥内容。
-
为了确保SSH密钥认证可以正常工作,需要设置一些文件和目录的权限:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
配置本地机器
最后,在本地机器上配置SSH客户端以使用SSH密钥认证。
-
通过编辑
~/.ssh/config
文件,在其中添加以下内容:Host remote_server Hostname IP地址/域名 # 远程服务器的IP地址或域名 User username # 登录远程服务器时的用户名 IdentityFile ~/.ssh/id_rsa # 私钥路径
确保将其中的"remote_server"、"IP地址/域名"、"username"和"~/.ssh/id_rsa"替换为实际的值。
-
保存并关闭
~/.ssh/config
文件。
测试SSH密钥认证
现在,你可以通过SSH密钥认证连接到远程服务器,无需输入密码。
-
打开终端窗口,输入以下命令连接到远程服务器:
ssh remote_server
注意,这里的"remote_server"与之前在
~/.ssh/config
文件中定义的主机名保持一致。 -
如果一切设置正确,你将成功地通过SSH密钥认证登录到远程服务器。
通过配置SSH密钥认证,你可以更加安全地进行远程连接,并且大大简化了登录的流程。希望本篇博客对你在Linux上配置SSH密钥认证有所帮助!
本文来自极简博客,作者:薄荷微凉,转载请注明原文链接:如何在Linux上配置SSH密钥认证