您当前的位置:首页 > 电脑百科 > 软件技术 > 软件技术

SSH 多密钥配置

时间:2022-07-11 09:49:21  来源:  作者:程序那点事

前言

当我们从 Github 克隆某个仓库时,往往使用 HTTPS 协议,除此之外,也可以使用 SSH 协议;当我们的客户机与远端服务器连接时,更加离不开 SSH 协议。如果我们需要连接多个远程终端,那么合理配置多个 SSH 密钥就显得很有必要。


一、SSH 是什么

SSH 全称为:Secure Shell,是一种加密的网络传输协议,通过在网络中创建安全隧道来实现客户端与服务器之间的连接。SSH 在 数据传输 时基本上都采用对称加密方式,但是在进行 身份验证 时却需要采用非对称加密的形式,也就是 公钥—私钥对 的形式。

二、密钥生成工具

生成 SSH 密钥对需要使用 ssh-keygen,如今的主流操作系统 windowslinuxmacOS 等往往事先已经安装好了。

三、密钥类型

SSH 生成密钥对时可以使用多种加密算法,这些加密算法生成的最常用的密钥类型是 rsa 和 ed25519。

  • rsa:最常用的公钥加密算法,使用极其广泛,并且支持较好。密钥位数越多,安全性越好,但是性能会有所降低,常见的有 RSA 2048 和 RSA 4096 等。
  • ed25519:椭圆曲线算法生成的密钥,密钥长度短,安全可靠并且具有高性能。它的安全性在 RSA 2048 与 RSA 4096 之间,但是性能却在数十倍以上。(推荐使用

ed25519 需要 OpenSSH 版本大于 6.5(2014 年的古老版本),应该不会有人的客户端和服务器不满足吧(不会吧不会吧!)

四、本地配置

ssh-keygen 生成的密钥对默认存储于家目录(Windows 的 C:Usersxxx,Linux/macOS 的 ~)的 .ssh 文件夹中

1.单密钥配置

使用 ssh-keygen 命令选择一种密钥类型来创建

# 生成 RSA 2048 密钥ssh-keygen -t rsa -b 2048 -C "your@emAIl.com" # 生成 RSA 4096 密钥ssh-keygen -t rsa -b 4096 -C "your@email.com" # 生成 ed25519 密钥ssh-keygen -t ed25519 -C "your@email.com"
  • -t:选择生成密钥的类型
  • -b:设置密钥位数
  • -C:密钥注释,这里要改为你自己的邮箱地址

执行以上命令后,会提示你设置密钥存储路径,按 Enter 默认即可。

然后会提示你设置密码,根据需要自行选择设不设置(不设置按 Enter 即可,已经非对称加密过,不设置也问题不大;设置的话安全性会提高,但是每次连接时需要输入密码,会麻烦一点)。

以生成密钥 ed25519 为例,操作完后会在家目录的 .ssh 文件夹中生成私钥 id_ed25519 和公钥 id_ed25519.pub 两个文件。

权限设置

在 Linux 中,还需要设置私钥文件的权限才可使用:

chmod 600 ~/.ssh/id_ed25519

2.多密钥配置

如果你同时使用 GitHub、Gitee 和 阿里云,都需要设置 SSH 密钥,可以将常用 SSH 登陆信息写进全局配置文件

打开终端,输入

# 创建 .ssh 文件夹mkdir -p ~/.ssh # 进入 .ssh 文件夹cd ~/.ssh

以下介绍以生成 ed25519 密钥为例:

# 生成 GitHub 密钥ssh-keygen -t ed25519 -f github_ed25519  -C "your@email.com" # 生成 Gitee 密钥ssh-keygen -t ed25519 -f gitee_ed25519  -C "your@email.com" # 生成 阿里云 密钥ssh-keygen -t ed25519 -f aliyun_ed25519  -C "your@email.com"
  • -f:生成密钥的名称,可自行修改

在 .ssh 文件夹下创建 config 文件(~/.ssh/config)

# ------------ 配置说明(始) ------------ # Host:别名,HostName:服务器域名或 IP 地址# User:用户名# 例:在 git clone git@github.com:torvalds/linux.git 中# User 是 git,Host 是 github.com# IdentityFile:私钥路径 # ------------ 配置说明(末) ------------  # ------------ 具体配置(始) ------------ # GitHub 密钥Host github.comHostName github.comUser gitPreferredAuthentications publickeyIdentityFile ~/.ssh/github_ed25519 # GiteeHost gitee.comHostName gitee.comUser gitPreferredAuthentications publickeyIdentityFile ~/.ssh/gitee_ed25519 # AliyunHost my_aliyunHostName xxx.xxx.xxx.xxxUser xxxPort 22PreferredAuthentications publickeyIdentityFile ~/.ssh/aliyun_ed25519 # ------------ 具体配置(末) ------------折叠 

权限设置

在 Linux 中,配置文件 config 和私钥文件的权限都需要设置才可使用:

chmod 600 config github_ed25519 gitee_ed25519 aliyun_ed25519

五、远端配置

1.GitHub/Gitee

登陆 GitHub,依次打开 Settings => SSH and GPG keys => New SSH key

然后将公钥(切记是公钥)内容粘贴过去

最后,使用 ssh 命令测试与 GitHub 的连接

ssh -T git@github.com

提示时输入 yes 即可,如果出错,可以在 -T 后面加上 -v 参数查看具体错误信息

Gitee 和 GitHub 添加方法类似,不做赘述

2.服务器

在服务器系统中找到 ~/.ssh/authorized_keys 文件(没有则创建),另起一行,将本地公钥(切记是公钥)内容粘贴过去,并设置权限:

chmod 600 ~/.ssh/authorized_keys

测试连接,以 多密钥配置 中 阿里云 为例:

# 使用 Host 别名ssh my_aliyun # 不使用 Host 别名ssh xxx@xxx.xxx.xxx.xxx

来源:
https://www.cnblogs.com/oranhext/p/ssh-keys-config.html



Tags:SSH   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
如何使用PHP SSH2模块执行远程Linux命令
PHP SSH2扩展是用于在PHP程序中使用SSH(安全壳协议)的一种扩展。它允许建立加密连接和执行远程命令、上传和下载文件等操作,十分方便实用。下面我将为大家详细介绍一下该扩展的...【详细内容】
2024-01-26  Search: SSH  点击:(115)  评论:(0)  加入收藏
深入浅出SSH隧道穿透
SSH(Secure Shell)是一种常用的远程登录和文件传输协议,而SSH隧道穿透是SSH协议的一个强大功能。通过SSH隧道,我们可以在两个主机之间建立一个加密的通道,实现安全传输数据和访问...【详细内容】
2024-01-09  Search: SSH  点击:(74)  评论:(0)  加入收藏
利用SSH加密实现的HTTP隧道分析与检测
1.隧道介绍Chisel是一个快速稳定的TCP/UDP隧道工具,该工具基于HTTP实现,并通过SSH加密保证通信安全。Chisel可以进行端口转发、反向端口转发以及SOCKS流量代理,使用GO语言编写,...【详细内容】
2023-10-26  Search: SSH  点击:(265)  评论:(0)  加入收藏
Linux如何设置ssh密钥(免密码)登录
前言我们在使用ssh客户端远程连接Linux服务器时,为了考虑安全方面的因素,通常使用密钥的方式来登录。密钥分为公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,私钥是由个人...【详细内容】
2023-09-13  Search: SSH  点击:(324)  评论:(0)  加入收藏
让Linux容器变身SSH登录终端,轻松远程管理你的服务器
引言大家好,我是一位不断学习Linux和Python技术的小伙伴,今天我将分享一个有趣且实用的技巧,即如何在Linux服务器上安装的Docker容器中启用SSH服务,使得这个容器能够通过SSH方式...【详细内容】
2023-08-20  Search: SSH  点击:(179)  评论:(0)  加入收藏
SSH免密钥登录
一、手动运行及原理本地端、服务端执行如下命令:rm -rf ~/.sshmkdir ~/.sshchmod 700 ~/.ssh本地客户端执行如下命令:ssh-keygen本地执行:上传到服务端并改名scp ~/.ssh/id_rsa...【详细内容】
2023-08-17  Search: SSH  点击:(245)  评论:(0)  加入收藏
什么是ssh?一文带你了解
在数字化时代,远程访问计算机和服务器已成为日常工作不可或缺的一部分。然而,随之而来的安全风险也引起了人们的关注。幸运的是,有一个强大而安全的解决方案,它就是SSH(Secure Sh...【详细内容】
2023-07-14  Search: SSH  点击:(245)  评论:(0)  加入收藏
Webssh搭建
网页端ssh搭建,更便捷地连接服务器。一、前因曾几何时,网页ssh对我而言,纯属虚设。毕竟,就算没带电脑,也可以用手机应应急。可是当你面前,手机电脑都有时,你是不会对着6寸屏幕去扒...【详细内容】
2023-05-28  Search: SSH  点击:(219)  评论:(0)  加入收藏
如何golang使用ssh隧道连接rabbit-mq?
在生产环境中,如mysql数据库服务、rabbit-mq消息队列服务、redis缓存服务等。为了安全,这些服务的通常端口都是不对外网开放的。有时候,我们需要本地访问这些服务,要如何设置呢?...【详细内容】
2023-05-16  Search: SSH  点击:(342)  评论:(0)  加入收藏
修改sshd端口时的报错
编辑/etc/ssh/sshd_config文件,修改sshd端口后,systemctl restart sshd重启sshd报错:-- Unit sshd.service has begun starting up.5月 13 00:32:53 localhost.localdomain ssh...【详细内容】
2023-05-12  Search: SSH  点击:(394)  评论:(0)  加入收藏
▌简易百科推荐
如何在Windows 10中查看电脑的名称?这里提供详细步骤
你想在有多台计算机组成的网络上查找你的计算机吗?一种方法是找到你的电脑名称,然后在网络上匹配该名称。下面是如何在Windows 10中使用图形和命令行方法查看你的计算机名称。...【详细内容】
2024-04-10  驾驭信息纵横科技    Tags:Windows 10   点击:(6)  评论:(0)  加入收藏
移动版 Outlook 解锁新技能,可验证登录 OneDrive 等微软服务
IT之家 4 月 9 日消息,微软公司近日发布新闻稿,宣布用户可以使用 Outlook 手机应用,轻松登录 Teams、OneDrive、Microsoft 365 以及 Windows 等微软账号服务。移动端 Outlook...【详细内容】
2024-04-09    IT之家  Tags:Outlook   点击:(7)  评论:(0)  加入收藏
Win10/Win11和 macOS用户反馈:谷歌云服务“捆绑”系统 DNS 设置
IT之家 4 月 6 日消息,谷歌公司承认旗下的 Google One 订阅服务中存在问题,在 Windows 10、Windows 11 以及 macOS 系统上会更改系统 DNS 设置,变更为 8.8.8.8 地址。Google On...【详细内容】
2024-04-08    IT之家  Tags:Win10   点击:(11)  评论:(0)  加入收藏
电脑卡顿怎么重装系统,快看这篇
电脑卡顿时,重装系统确实是一种可能的解决方案。以下是重装系统的详细步骤:备份重要数据:首先,你需要将电脑中的重要文件和数据备份到外部存储设备(如U盘、移动硬盘或云存储)中,以...【详细内容】
2024-04-04  科技数码前锋    Tags:重装系统   点击:(5)  评论:(0)  加入收藏
如何检查电脑的最近历史记录?这里提供详细步骤
如果你怀疑有人在使用你的计算机,并且你想查看他们在做什么,下面是如何查看是否有访问内容的痕迹。如何检查我的计算机的最近历史记录要检查计算机的最近历史记录,应该从web浏...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:历史记录   点击:(6)  评论:(0)  加入收藏
关于Windows中AppData的相关知识,看这篇文章就可以了
如果AppData文件夹占用了你电脑上的太多空间,则需要清理AppData文件夹。下面是一些帮助你在Windows计算机上进行AppData清理的方法。什么是AppData文件夹AppData文件夹是保存...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:AppData   点击:(10)  评论:(0)  加入收藏
微软 Edge 浏览器将迎来“内存限制器”功能,用户可自主控制 Edge 内存占用
IT之家 3 月 28 日消息,微软即将为其 Edge 浏览器带来一项实用新功能,据悉该公司正在测试一项内置的内存限制器,这项功能可以让用户限制 Edge 所占用的内存,防止浏览器超出内存...【详细内容】
2024-03-29    IT之家  Tags:Edge   点击:(21)  评论:(0)  加入收藏
一寸照片的大小如何压缩?四个实测效果很好的方法
一寸照片作为生活中常见的尺寸之一,常用于各类证件照与证明文件的制作。然而,受限于其较为狭小的尺寸,上传及打印过程中很容易出现尺寸超限的情况。所以,这个时候就需要对其体积...【详细内容】
2024-03-18  宠物小阿涛    Tags:压缩   点击:(20)  评论:(0)  加入收藏
手机投屏到电脑/电视的方法
方法一:Win10自带的投影功能1、将手机和电脑连接同一个无线网络。2、选择【开始】>【设置】>【系统】>【投影到此电脑】3、将默认的始终关闭的选项更改为所有位置都可用。4、...【详细内容】
2024-03-18    老吴讲I  Tags:投屏   点击:(24)  评论:(0)  加入收藏
微软商店怎么卸载应用 一分钟快速看懂!
微软商店怎么卸载应用 一分钟快速看懂!微软公司(Microsoft Corporation)是一家全球领先的科技企业,总部位于美国华盛顿州的雷德蒙德。成立于1975年,由比尔·盖茨和保罗&mid...【详细内容】
2024-02-27  婷婷说体育    Tags:微软商店   点击:(44)  评论:(0)  加入收藏
站内最新
站内热门
站内头条