Git的SSH密钥配置

这篇具有很好参考价值的文章主要介绍了Git的SSH密钥配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


使用Git有一段时间了,之前也分享过一些相关文章记录,但一直都想对初始设置做一篇记录,毕竟 pushpull操作经常使用,也都熟能生巧了。但初始设置用的次数一般都很少,忘记再查也是很麻烦,这里就根据我自己的经验和之前查到的资料做一个简单记录,希望对初学者有帮助。这里主要以GitLab为例,但GitHub的步骤也大致相同。
参考链接:
  1. 一个GitLab文档
  2. https://blog.csdn.net/inthat/article/details/109406553
  3. https://blog.csdn.net/qq_42680332/article/details/119001765

Git

Git是一个分布式版本控制系统,这意味着你可以在本地工作,然后将更改共享或“推送”到服务器。

https和ssh的区别

很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用ssh url克隆到本地。
然而,为什么绝大多数人会使用https url克隆呢?
这是因为,使用https url克隆对初学者来说会比较方便,复制https url然后到git Bash里面直接用clone命令克隆到本地就好了。而使用ssh url克隆却需要在克隆之前先配置和添加好ssh key

因此,如果你想要使用ssh url克隆的话,你必须是这个项目的拥有者。否则你是无法添加ssh key的。

所以两者的区别为:

  1. 前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加ssh key,否则无法克隆。
  2. https urlpush的时候是需要验证用户名和密码的;而ssh在push的时候,是不需要输入用户名的,如果配置ssh key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

基本需求

要使用ssh与GitLab通信,您需要:

  • OpenSSH客户端,预装在GNU/Linux、macOS和Windows 10上。
  • ssh版本6.5或更高版本。早期版本使用MD5签名,这并不安全。

要查看系统上安装的ssh版本,请运行ssh -V,如图。
git配置ssh密钥,Git,git,ssh,github

SSH密钥类型

要与GitLab通信,您可以使用以下SSH密钥类型:

  • ED25519
  • RSA
  • DSA(在GitLab 11.0中已弃用)
  • ECDSA(如Go的实用密码学中所述,与DSA相关的安全问题也适用于ECDSA)

管理员可以限制允许的密钥及其最小长度。

ED25519 SSH 密钥

《Practical Cryptography with Go》一书表明,ED25519密钥比RSA密钥更安全、性能更高。
OpenSSH 6.5在25519年引入了ED2014 ssh密钥,它们应该在大多数操作系统。

RSA SSH 密钥

现有文档表明,ED25519比RSA更安全。
如果使用RSA密钥,美国国家科学技术研究院在出版物800-57 第3部分(PDF)中建议密钥大小至少为2048位。默认密钥大小取决于您的版本。
有关详细信息,请查看已安装命令的页面ssh-keygenmanssh-keygen

查看您是否有现有的 SSH 密钥对

在创建密钥对之前,请查看密钥对是否已存在。

  1. 在Windows、Linux或macOS上,转到您的主目录。
  2. 转到子目录。如果子目录不存在,您要么不在主目录中,要么以前从未使用过。在后一种情况下,您需要生成 SSH 密钥对.ssh/.ssh/ssh
  3. 查看是否存在具有以下格式之一的文件:
算法 公钥 私钥
ED25519(首选) id_ed25519.pub id_ed25519
RSA(至少 2048 位密钥大小) id_rsa.pub id_rsa
DSA(已弃用) id_dsa.pub id_dsa
ECDSA id_ecdsa.pub id_ecdsa

设置流程

设置user name和email

首先在使用SSH之前要先设置全局范围的用户名:user name邮箱:email

# 查看配置
git config --list
git config --global -l
git config -l
#git status
git config --global user.name "docker"
git config --global user.email "xxx@yeah.net"

ssh密钥配置

检查是否存在ssh Key
cd ~/.ssh
ls

或者

ls -al ~/.ssh

看是否存在id_rsaid_rsa.pub,或者类似但秘钥类型不同的文件,如果存在,说明已经有ssh Key。没有的话,创建新的ssh key。

删除ssh下所有的文件
rm -rf ~/.ssh/*

输入之后会出现一个提问选择,输入:y,确认即可。

创建新的ssh key
  1. 打开终端。
  2. 键入ssh-keygen -t,后跟密钥类型和可选注释。此注释包含在创建的文件中。
    您可能需要使用电子邮件地址进行评论。
    例如,对于ED25519:
ssh-keygen -t ed25519 -C "<comment>"

-t ed25519:密钥的类型;-C "<comment>":用于识别密钥的注释,一般大家都写的是Email邮箱。
对于2048位RSA:

ssh-keygen -t rsa -b 2048 -C "<comment>"
  1. 按Enter键。将显示类似于以下内容的输出:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):
  1. 接受建议的文件名和目录,除非您正在生成部署密钥或想要保存在存储其他密钥的特定目录中。
    您还可以将SSH密钥对专用于特定主机。
  2. 指定密码:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
  1. 将显示一条确认信息,其中包括有关文件存储位置的信息。

完成后会在.ssh目录生产两个文件:id_ed25519(私有密钥)id_ed25519.pub(公开密钥)

将ssh密钥添加到您的Git帐户
  1. 复制公钥文件的内容。您可以手动执行此操作,也可以使用脚本执行此操作。
    例如,要将ED25519密钥复制到剪贴板:
    macOS:
tr -d '\n' < ~/.ssh/id_ed25519.pub | pbcopy

Linux(需要软件包):xclip

xclip -sel clip < ~/.ssh/id_ed25519.pub

Git Bash on Windows:

cat ~/.ssh/id_ed25519.pub | clip

替换为您的文件名。例如,用于RSA:id_rsa.pub替换上面的id_ed25519.pub
2. 登录GitLab。
3. 在右上角,选择您的头像。
4. 选择首选项。
5. 在左侧边栏中,选择“ssh 密钥”。
6. 在“密钥”框中,粘贴公钥的内容。如果手动复制了密钥,请确保复制整个密钥,以ssh-ed25519或ssh-rsa开头,可能以注释结尾。
7. 在“标题”文本框中,键入说明,如“工作笔记本电脑”或“家庭工作站”。
8. 可选的。在“失效时间”框中选择失效日期。(在GitLab 12.9中引入。)过期日期仅为信息,并不阻止您使用关键。但是,管理员可以查看过期日期和在删除键时使用它们作为指导。

  • GitLab每天在UTC时间凌晨02:00检查所有SSH密钥。它会通过电子邮件发送当前日期到期的所有SSH密钥的到期通知。(在GitLab 13.11中引入)
  • GitLab每天在UTC时间凌晨01:00检查所有SSH密钥。它会通过电子邮件发送计划在七天后过期的所有SSH密钥的到期通知。(在GitLab 13.11中引入)
  1. 选择“添加密钥”。

验证您是否可以连接

  1. 打开终端并运行以下命令,替换为您的GitLab实例URL:gitlab.example.com
ssh -T git@gitlab.example.com
  1. 如果这是您第一次连接,则应验证GitLab主机的真实性。如果您看到类似以下内容的消息:
The authenticity of host 'gitlab.example.com (35.231.145.151)' can't be established.
ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitlab.example.com' (ECDSA) to the list of known hosts.

键入yes并按回车键。
3. 再次运行该命令ssh -T git@gitlab.example.com。您应该会收到*欢迎来到 GitLab,@username!*消息。

如果未显示欢迎消息,可以通过在详细模式下运行ssh来进行故障排除:文章来源地址https://www.toymoban.com/news/detail-765154.html

ssh -Tvvv git@gitlab.example.com

到了这里,关于Git的SSH密钥配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git 配置SSH密钥

    一、设置账号和邮箱 二、生成密钥 三、保存密钥 最后 复制生成的密钥,添加到码云对应的SSH Keys处即可

    2024年02月16日
    浏览(45)
  • 配置Git的SSH密钥

    要配置Git的SSH密钥,请按照以下步骤进行: 打开终端并运行以下命令生成密钥: 其中, your_email@example.com  是您的电子邮件地址。 稍后会提示您输入文件名和密码短语。您可以按Enter键接受默认值,或按需要自定义它们。 在终端中运行以下命令,将新生成的SSH密钥添加到s

    2024年02月12日
    浏览(51)
  • Git的SSH密钥配置

    使用Git有一段时间了,之前也分享过一些相关文章记录,但一直都想对初始设置做一篇记录,毕竟 push 和 pull 操作经常使用,也都熟能生巧了。但初始设置用的次数一般都很少,忘记再查也是很麻烦,这里就根据我自己的经验和之前查到的资料做一个简单记录,希望对初学者

    2024年02月04日
    浏览(52)
  • Git 本地配置SSH Key(密钥)

    Git配置 打开Git Bash 配置你的用户名和邮箱 git config --global user.name “zhangsan” git config --global user.email “zhangsan@xxxx.com” 生成SSH key ssh-keygen -t rsa -C “zhangsan@xxxx.com” 获取SSH Key 根据命令行提示,获取以ssh-rsa的字符串(包括ssh-rsa) 按键”回车键“ 生成了SSH Key(密钥)如下图所示

    2024年04月27日
    浏览(37)
  • 生成ssh密钥,并配置到git环境

    1. 首先可以查看是否已经生成了密钥  如果出现了上述图片的一串字符串,代表是已经生成了密钥  如果已经生成了密钥,那2、3、4步可以省略 2. 配置用户名 3. 配置邮箱 4. 生成密钥:     5. 可以用第1步 的命令查看密钥,配置到git环境下的是 id_rsa.pub下的内容 1. 找到环境

    2024年02月04日
    浏览(41)
  • 为什么Git需要配置ssh密钥,怎么配置?

    如果不设置 ssh 公钥每次提交代码就要输入你的帐号密码。如果设置了公钥之后你的机器和 github或者gitee 通信的时候, github或者gitee可以通过公钥识别出你是可信赖用户,这样就不需要每次 git 和 github或者gitee 通信的时候都要输入密码了。 SSH是一种网络协议,用于计算机之间

    2024年02月08日
    浏览(44)
  • git 配置用户名和密码 SSH密钥

    复制私钥 到gitlab  或者 gitee 输入yes

    2024年04月17日
    浏览(53)
  • 两个git本地如何配置两个ssh密钥for mac

    我是在mac上操作的。windows上也差不多一样操作。 1.找到本地的.ssh文件。我的文件结构如下如:  文件结构: (1)两个known_hosts文件是自动生成的,不用管 (2)readme文件是我个人记事本记录笔记,不用管 (3)两个lxq_ssh和两个id_rsa,这是两个密钥文件。如何生成密钥文件,

    2024年02月10日
    浏览(45)
  • Git 配置SSH,多个 Github 账号配置不同的SSH KEY

    首先做个说明 生成一对默认的私钥公钥,私钥自己客户端留着用,公钥可以给多个平台用。 多对私钥公钥,主要是应对一个平台多个账号的情况。当然你想每个平台使用不同的私钥公钥也是可以的。 多次生成私钥公钥需要自己重新命名,否则会覆盖之前的。 一、查看是否已

    2024年02月07日
    浏览(67)
  • git生成ssh密钥详细步骤 git如何生成ssh密钥

    首先右键点击电脑桌面,点击选择\\\"Git Bash Here\\\",打开git命令窗口; 2. 在git命令窗口配置用户,输入命令:git config --global user.name “blkj”。其中“blkj”是你自己要填的用户名; 3. 接着进行邮箱配置,输入命令:git config --global user.email “blkj@boranet.com.cn”。\\\"blkj@boranet.com.cn\\\"就是填

    2024年02月11日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包