前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在远程 SSH 服务器中创建和添加 SSH 密钥?

如何在远程 SSH 服务器中创建和添加 SSH 密钥?

原创
作者头像
网络技术联盟站
发布2023-06-09 09:41:11
4.1K0
发布2023-06-09 09:41:11
举报

SSH 密钥是一种安全的身份验证方法,用于在远程服务器和客户端之间建立安全连接。使用 SSH 密钥可以替代传统的密码身份验证,提供更高的安全性和便利性。本文将详细介绍如何在远程 SSH 服务器中创建和添加 SSH 密钥。

1. 生成 SSH 密钥对

在远程 SSH 服务器中创建和添加 SSH 密钥,首先需要生成密钥对。密钥对由公钥和私钥组成,公钥用于加密数据,私钥用于解密数据。

以下是在本地机器上生成 SSH 密钥对的步骤:

  1. 打开终端:在本地机器上打开终端应用程序。
  2. 生成密钥对:使用以下命令生成 SSH 密钥对:
代码语言:txt
复制
ssh-keygen -t rsa -b 4096

这将生成一个 4096 位的 RSA 密钥对。您可以选择其他密钥类型和位数,但 RSA 是最常用的。

  1. 提供密钥保存位置和密码(可选):系统会提示您提供密钥保存位置和可选的密码。按回车键接受默认值或输入自定义路径和密码。
  2. 生成密钥对:系统会生成公钥(id_rsa.pub)和私钥(id_rsa)文件,并显示密钥指纹等相关信息。

2. 将公钥添加到远程服务器

在本地生成 SSH 密钥对后,接下来需要将公钥添加到远程 SSH 服务器,以便进行身份验证。

以下是将公钥添加到远程服务器的步骤:

  1. 复制公钥:使用以下命令复制公钥内容:
代码语言:txt
复制
cat ~/.ssh/id_rsa.pub

终端会显示公钥内容。复制该内容,或者使用其他编辑器打开公钥文件并复制其内容。

  1. 登录远程服务器:使用 SSH 连接到远程服务器:
代码语言:txt
复制
ssh username@remote_server

username 替换为您在远程服务器上的用户名,remote_server 替换为远程服务器的 IP 地址或域名。

  1. 创建 .ssh 目录(如果不存在):在远程服务器的用户主目录中,使用以下命令创建 .ssh 目录:
代码语言:txt
复制
mkdir -p ~/.ssh
  1. 编辑 authorized_keys 文件:使用以下命令编辑或创建 authorized_keys 文件:
代码语言:txt
复制
nano ~/.ssh/authorized_keys

如果文件已存在,请将光标移到文件的末尾。如果文件不存在,则创建一个新文件并打开编辑器。

  1. 将公钥粘贴到 authorized_keys 文件:将之前复制的公钥内容粘贴到打开的 authorized_keys 文件中。确保将整个公钥粘贴为一行,并保存文件。
  2. 设置文件权限:使用以下命令设置 authorized_keys 文件的权限:
代码语言:txt
复制
chmod 600 ~/.ssh/authorized_keys
  1. 退出远程服务器:使用以下命令退出远程服务器:
代码语言:txt
复制
exit

3. 测试 SSH 密钥身份验证

完成上述步骤后,您已经成功将公钥添加到远程服务器。现在,让我们测试 SSH 密钥身份验证是否正常工作。

  1. 在本地机器上使用以下命令连接到远程服务器:
代码语言:txt
复制
ssh username@remote_server

username 替换为您在远程服务器上的用户名,remote_server 替换为远程服务器的 IP 地址或域名。

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

SSH 密钥身份验证已成功配置并且在连接时无需密码。

4. 高级选项:使用 SSH 代理

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

以下是使用 SSH 代理的步骤:

  1. 在本地机器上编辑 SSH 配置文件:使用以下命令编辑 SSH 配置文件:
代码语言:txt
复制
nano ~/.ssh/config
  1. 在文件中添加以下内容:
代码语言:txt
复制
Host remote_server
    ForwardAgent yes

remote_server 替换为远程服务器的别名或 IP 地址。

  1. 保存并关闭文件。
  2. 连接到跳板服务器:如果您使用了跳板服务器,可以使用以下命令连接到远程服务器:
代码语言:txt
复制
ssh -A username@jump_server
  1. 从跳板服务器连接到目标远程服务器:在跳板服务器上,使用以下命令连接到目标远程服务器:
代码语言:txt
复制
ssh username@remote_server

remote_server 替换为目标远程服务器的 IP 地址或域名。

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

5. 总结

本文详细介绍了如何在远程 SSH 服务器中创建和添加 SSH 密钥。通过生成密钥对,并将公钥添加到远程服务器的 authorized_keys 文件中,您可以实现无需密码的安全身份验证。我们还介绍了如何使用 SSH 代理来简化复杂的网络配置。通过使用 SSH 密钥身份验证,您可以增强远程服务器的安全性,并提供更便利的登录方式。请记住保

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 生成 SSH 密钥对
  • 2. 将公钥添加到远程服务器
  • 3. 测试 SSH 密钥身份验证
  • 4. 高级选项:使用 SSH 代理
  • 5. 总结
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档