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

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

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

1. 生成 SSH 密钥对

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

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

  1. 打开终端:在本地机器上打开终端应用程序。

  2. 生成密钥对:使用以下命令生成 SSH 密钥对:

ssh-keygen -t rsa -b 4096

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

  1. 提供密钥保存位置和密码(可选):系统会提示您提供密钥保存位置和可选的密码。按回车键接受默认值或输入自定义路径和密码。

  2. 生成密钥对:系统会生成公钥(id_rsa.pub)和私钥(id_rsa)文件,并显示密钥指纹等相关信息。

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

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

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

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

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

  1. 登录远程服务器:使用 SSH 连接到远程服务器:
ssh username@remote_server

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

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

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

  1. 将公钥粘贴到 authorized_keys 文件:将之前复制的公钥内容粘贴到打开的 authorized_keys 文件中。确保将整个公钥粘贴为一行,并保存文件。

  2. 设置文件权限:使用以下命令设置 authorized_keys 文件的权限:

chmod 600 ~/.ssh/authorized_keys
  1. 退出远程服务器:使用以下命令退出远程服务器:
exit

3. 测试 SSH 密钥身份验证

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

  1. 在本地机器上使用以下命令连接到远程服务器:
ssh username@remote_server

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

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

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

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

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

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

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

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

  1. 保存并关闭文件。

  2. 连接到跳板服务器:如果您使用了跳板服务器,可以使用以下命令连接到远程服务器:

ssh -A username@jump_server
  1. 从跳板服务器连接到目标远程服务器:在跳板服务器上,使用以下命令连接到目标远程服务器:
ssh username@remote_server

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

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

5. 总结

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

目录
相关文章
|
4月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
215 14
|
5月前
|
Ubuntu 应用服务中间件 网络安全
关于一些轻量云服务器SSH断连的疑问
在使用2H2G配置的轻量级Ubuntu 22.04服务器时,按照Solana官网教程安装环境,执行`[cargo install]`命令(特别是安装avm和anchor包时),出现SSH连接中断且无法重新登录的问题。推测可能是低配服务器资源耗尽导致SSH进程被终止,即便CPU使用率下降也无法恢复连接,需重启服务器并等待约30分钟才能恢复正常。此现象或与服务器性能限制有关,期待更多测试与解释。
|
5月前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
212 24
|
7月前
|
安全 Linux 网络安全
CentOS 8下SSH连接超时与“无法加载主机密钥”错误的排查与修复
在CentOS 8系统中,宝塔面板提示“出错了,面板运行时发生错误”,导致插件无法正常显示。同时,SSH连接超时,修复面板功能失效。通过VNC连接排查,发现SSH服务安装和配置问题频发,最终通过重装SSH、调整权限并重新生成主机密钥文件解决问题,成功恢复SSH连接。
436 16
|
11月前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
12月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
546 2
|
Ubuntu Linux 网络安全
SSH客户端连接远程服务器
一、什么是客户端连接远程服务器 发起连接的一方,计算机或设备(称为客户端)与另一个计算机或设备(称为远程服务器)建立连接。 客户端通过网络连接到远程服务器,远程服务器则是提供所需服务或资源的一方。 客户端通常使用特定的协议(如SSH、HTTP、FTP等)与远程服务器进行通信。 示例:你使用SSH客户端从本地计算机连接到远程服务器以执行远程命令。 二、什么是服务端连接远程服务器
484 1
|
Linux 网络安全 数据安全/隐私保护
SSH工具连接远程服务器或者本地Linux系统
SSH工具连接远程服务器或者本地Linux系统
202 0
|
网络安全
mac下通过ssh脚本实现免账号密码连接运服务器
mac下通过ssh脚本实现免账号密码连接运服务器
150 3
|
Cloud Native 网络安全 Go
SSH连接服务器后执行多条命令
SSH连接服务器后执行多条命令
254 0

热门文章

最新文章