如何为SSH配置私钥

在日常开发中,SSH可能是一个家喻户晓的工具。SSH的全称为Secure Shell,是一种加密网络协议。可以通过SSH协议进行安全的远程登录和其他网络服务。

默认情况下,SSH是以用户名和密码的方式进行验证。然而,加入私钥是一种更为安全的验证方式。本文将详细介绍如何为SSH配置私钥,以确保您的连接更加安全。

一、生成和保存SSH密钥

在开始之前,确保您已经安装了SSH客户端。Windows下推荐使用PuTTY,Mac或Linux下推荐使用Terminal。

步骤1:打开SSH客户端,打开终端窗口,然后使用以下命令生成密钥:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

其中,“-t”参数指定算法类型,对于此示例中的RSA算法,“-b”指定密钥长度为4096位,而“-C”选项指定一个注释来识别密钥的不同用途。在此处替换“your_email@example.com”为您的电子邮件地址,当在同一台电脑上生成多个密钥时,需要使用唯一的注释来识别每个密钥。

步骤2:按提示进行操作,包括选择路径和输入口令等。默认情况下,密钥对存储在当前用户的主目录下的.ssh目录中。公共密钥保存在.ssh/id_rsa.pub文件中,而私钥保存在.ssh/id_rsa文件中。

步骤3:确保.ssh文件夹的权限设置合理。使用以下命令检查权限:

ls -lh ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

最后一个命令将您的私钥权限设置为仅允许当前用户进行读写操作,确保私钥的安全性。

二、添加SSH公钥至远程服务器

本节将介绍如何将您的公钥添加到远程服务器。这将允许您使用私钥对远程服务器进行身份验证,而无需每次输入密码。

步骤1:使用以下命令将公钥添加到远程服务器上的授权密钥文件中:

ssh-copy-id username@remote_host

其中,“username”是您在服务器上的用户名,“remote_host”是您的服务器地址。执行该命令后,系统会询问您该用户的密码。正确输入密码后,公钥将自动添加到远程服务器上的授权密钥文件中。

步骤2(可选):在服务器上手动添加公钥。如果您无法使用“ssh-copy-id”命令,则可以手动将公钥添加到授权密钥文件中。将公钥的内容复制到.ssh/authorized_keys文件中:

cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

三、验证SSH私钥

现在,您已经将公钥添加到远程服务器上,下面是如何测试公钥是否正常工作的方式:

步骤1:使用以下命令连接到远程服务器:

ssh username@remote_host

其中,“username”是您在服务器上的用户名,“remote_host”是您的服务器地址。如果在连接时被要求输入密码,则表示未正确设置SSH密钥。

步骤2:如果您在登录时使用了口令来保护您的密钥,则需要手动输入口令。如果消息类似于以下消息,则表示您已经成功连接到远程服务器:

Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-77-generic x86_64)

Last login: Sat Jul 31 21:52:45 2021 from localhost

恭喜您,现在已经为SSH配置了私钥!

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/290759.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-24 13:13
下一篇 2024-12-24 13:13

相关推荐

  • Python SSH 远程执行命令

    Python SSH 远程执行命令是指在一个服务器上执行远程另一个服务器上命令。如果你需要在本地机器上执行命令,或者在远程机器上执行本地命令,你都可以使用 SSH。在 Python…

    编程 2025-04-29
  • CentOS 开启 SSH

    一、安装 SSH SSH 是 Secure Shell 的缩写,是一种安全协议。在 CentOS 系统中,可以通过以下命令安装 SSH: sudo yum install open…

    编程 2025-04-25
  • 如何开启SSH服务

    一、SSH是什么 SSH(Secure Shell)是加密网络协议,用于在网络上安全地传输数据。它通过加密技术来保护数据的机密性和完整性,可以被用于远程登录(以及其他网络服务)的安…

    编程 2025-04-25
  • 详解Git生成SSH Key

    一、生成SSH Key的意义 Git是一个强大的分布式版本控制系统,可以帮助我们开发更加高效和规范化。在使用Git和GitHub等平台时,常常会涉及SSH Key的生成。那么,什么…

    编程 2025-04-24
  • 深入探究SSH协议

    一、SSH协议的概述 Secure Shell(SSH)是一种加密网络协议,用于在网络上安全地传输数据。它最初是为取代Telnet和不安全的远程Shell协议(例如rlogin)而…

    编程 2025-04-23
  • CentOS7 SSH详解

    一、CentOS7 SSH简介 CentOS7是一种在Linux环境下运行的操作系统,而SSH(Secure Shell)是一种用于远程登录到计算机系统的协议。在CentOS7中,…

    编程 2025-04-23
  • GitLab设置SSH key

    一、为什么需要添加SSH key GitLab是一个基于Git的源代码管理系统,使用它可以轻松地管理代码、项目和团队。在GitLab上添加SSH key是为了保证账户的安全性,同时…

    编程 2025-04-23
  • SSH无密码登录配置

    一、生成公钥和私钥 在进行ssh无密码登录配置前,首先需要生成公钥和私钥。 打开命令行窗口,并执行以下命令: ssh-keygen -t rsa 在弹出的窗口中,选择保存密钥的路径…

    编程 2025-04-23
  • Linux SSH配置详解

    一、安装SSH SSH(Secure Shell)是在Linux中常用的一种加密远程连接协议,可以使系统管理员通过互联网或局域网对远程连接的Linux服务器进行加密数据传输和远程管…

    编程 2025-04-22
  • Github配置SSH

    一、生成SSH密钥 1、打开Git Bash $ cd ~/.ssh $ ssh-keygen -t rsa -b 4096 -C “your_email@example.com”…

    编程 2025-04-12

发表回复

登录后才能评论