使用ssh连接github——git学习之路(二)

GitHub加速必备:3分钟搞定SSH和HTTP代理配置(附常见问题排查) 本文详细介绍了如何通过配置SSH和HTTP代理优化GitHub访问速度,解决国内开发者常见的克隆慢、推送失败等问题。提供从基础设置到高级调优的完整方案,包括环境变量配置、Git全局设置、SSH参数优化及常见故障排查方法,帮助开发者高效使用GitHub进行代码管理。 阅读详情

一、ssh简介

ssh全称为Secure Shell, 意味安全的外壳,旨在为不安全的网络提供共安全的通信。 参考自碎步の流年的博客

使用ssh连接github,能够增强安全性和便捷性。因为可以启用ssh代理,这样就不用每次push都要输入密码。

首先,要保证本机安装了ssh工具,一般windows会自带openssh,没有的话可以使用git bash上的,不过两者启动ssh-agent的方式不同。

> ssh -V # 查看版本,以及是否安装了ssh
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2

二、基本操作


1.生成密钥,添加到github个人账户

第一步,输入生成密钥的命令,然后根据提示设置密钥密码。

# 生成一个rsa类型的、4096位的、以邮箱为用户标识的密钥对
> ssh-keygen -t rsa -b 4096 -C "your email"

由于ssh使用非对称加密来保证安全性,因此需要我们在本机生成自己的私钥和公钥,然后把私钥保存起来,把公钥发给将要连接的远程主机上即可进行通信。生成好的密钥对默认保存在C:\Users\<用户名>\.ssh文件夹中。

第二步,将公钥添加到github的个人账户中。公钥的位置在.ssh\id_rsa.pub(如果使用rsa算法的话),首先复制其文本,然后在github上,进入个人账户的“SSH and GPG keys”页面即可点击添加自己的公钥信息,设置之后就可以连接远程主机了。

2.连接远程主机

ssh [-T/-t] 用户名@主机名 [-i path/name]
常用参数
  • -T 不占用远程主机pst(pseudo-terminal,伪终端),因此连接会被保持,但不能获得交互式体验。
  • -t 让远程主机分配pst(pseudo tty,伪终端),但是许多远程服务器禁止分配tty(teletypewriter,就是终端的早期叫法,因为早期终端就是一个电传打字机)。
  • -i 显式地指定私钥位置和名字
例如:

测试github上ssh公钥的设置是否成功。

> ssh -T git@github.com
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com,20.205.243.166' (ECDSA) to the list of known hosts.
Enter passphrase for key 'C:\Users\Administrator/.ssh/id_rsa':
Hi littlecaca! You’ve successfully authenticated, but GitHub does not provide shell access.

如果是第一次连接主机git@github.com,会提示是否接受该公钥,代表确认对方就是github的主机。接收后该公钥信息会被写入.ssh\known_hosts文件,今后通信就用这个公钥加密发送数据。

3.手动开启ssh认证代理

ssh认证代理可以自动完成身份认证,开启之后就不要每次连接都输入密钥的密码。使用windows openssh中的ssh-agent最为方便,因为它以服务方式运行,不要与终端绑定;也可以使用git bash中的ssh-agent,它以普通的进程方式运行,因此需要为终端设置环境变量来与它通信。接下来分别介绍这两种方式。

1)运行windows openssh的ssh-agent服务

首先以管理员身份打开powershell(如果ssh服务被禁用,以管理员身份可以将其开启)

第一步,检查ssh-agent服务是否开启:

> Get-Service -Name ssh-agent
Status   Name               DisplayName
------   ----               -----------
Stopped  ssh-agent          OpenSSH Authentication Agent

如果Status为running,请忽略第二步。

第二步,开启ssh-agent

> ssh-agent
unable to start ssh-agent service, error :1058

如果出现上面这种情况,说明ssh-agent被禁用,在管理员身份下设置其启动方式为手动即可

> Set-Service -Name ssh-agent -StartupType manual

然后,开启服务

> Start-Service ssh-agent	# 或者直接运行ssh-agent

查看是否开启成功

> Get-Service ssh-agent
Status   Name               DisplayName
------   ----               -----------
Running  ssh-agent          OpenSSH Authentication Agent
2)运行git bash所带的mingw项目的ssh-agent进程

在bash中输入:

eval "$(ssh-agent -s)"	
# 也可以使用:
ssh-agent bash

eval “$(ssh-agent -s)” 首先启动ssh-agent,然后为shell设置环境相应环境变量SSH_AUTH_SOCK和SSH_AGENT_PID,而ssh-agent会创建一个新的bash并设置这两个环境变量,ssh-add和ssh等工具收到用户命令后会先检查环境变量看是否配置了ssh-agent。另外,通过手动设置SSH_AUTH_SOCK和SSH_AGENT_PID可以实现本机多个终端共享一个ssh-agent。

$ ssh-agent -s
SSH_AUTH_SOCK=/tmp/ssh-UO6gTprepc0V/agent.1145; export SSH_AUTH_SOCK;
SSH_AGENT_PID=1146; export SSH_AGENT_PID;
echo Agent pid 1146;

参考自zhouguoqionghai的博客

4.添加密钥

> ssh-add ~/.ssh/id_rsa  # 将私钥添加到ssh-agent,这样它就可以用这个自动帮你认证了。

对于作为服务启动的ssh-agent来说,只需在服务启动后进行一次ssh-add,而对于作为进程启动的ssh-agent,需要在终端开启后,设置环境变量与ssh-agent进程通信。

三、结语

本文介绍了ssh及其基本的用法,在学习git以及github的过程中,必然会接触很多辅助工具,我们只需在实践中学习必要的那一部分即可。

读完本文,你学会了一下内容:

  • 了解了ssh的功能和基本原理
  • 会使用ssh-keygen生成自己的密钥对,并添加到自己的github个人账户上
  • 会使用ssh连接到远程主机
  • 能够开启ssh-agent认证代理,添加自己密钥的密码,实现客户端身份自动认证。

Goodbye Guys

在本地配置SSH并连接到GitHub以及其它服务器(详细图文教程) 介绍如何在本地生成SSH密钥,并用它免密登录GitHub和其它服务器。 阅读详情

相关推荐

在 mac 上使用 Git 和 GitHub 连接

在 mac 上使用 Git 和 GitHub 连接,mac git 的地址: http://code.google.com/p/git-osx-installer/ 由于可能这个网址访问 不了,所以需要使用源码安装。

Zhiyuan_Ma 5282

GitHub配置SSH:一步步教你如何轻松连接远程仓库

github 配置ssh 免密连接

爱媳妇儿爱编程 8325

在win10搭建git连接github

主要的步骤: 1.注册好github账号; 2.安装git 3.记下自己用户名: 4.生成密钥,复制到github的ssh; 5.输入ssh git@github.com验证 个人是使用谷歌的,会自动翻译; 1.先新存储库 2.安装git成功是可以在开始里看到: 打开git bash (bash是cmd的升级版,建议使用bash) 输入如下命令,并按回车 git config --globa...

羊咩咩 1998

github SSH 生成和使用(详细)

github的ssh生成和连接使用方式

ziqibit的博客 4990

ssh.exe OpenSSH-for-Windows-8.1p1

ssh程序,版本为OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2

lumerical-环形谐振器

利用mode求解器优化得到所需的环的总长度,即环形器的半径,然后通过varFDTD得到光场分布和透过率.

m0_61776728的博客 2179

基于 SSH 协议配置 Git 连接 GitHub

0.安装 Git 1.注册 GitHub 账号 2.配置 Git 的用户名和邮箱 3.远程连接 GitHub 有两种传输协议 4.基于 SSH 协议配置 Git 连接 GitHub 5.基于 HTTPS 协议配置 Git 连接 GitHub

脚踏实地,仰望星空 1万+

利用Langchain生成合成数据的实践指南

合成数据是相对于从真实世界事件中收集的数据而言的人工生成的数据。它用于模拟真实数据,同时避免隐私泄露或遇到真实数据中的局限性。:尽管合成数据有诸多优点,但应谨慎使用,因为它可能无法捕捉真实世界的复杂性。

eahba的博客 396

Git第 1 篇,GitHub创建仓库,使用SSH建立连接(github创建仓库,github使用SSH密钥建立连接)

⭐GitHub是一个面向开源及私有软件项目的托管平台,也是一个开源代码库以及版本控制系统,Github拥有超过900万开发者用户,已经成为了管理软件开发以及发现已有代码的首选方法。这里来记录一下如何在GitHub上创建仓库,并使用

AI Agent 全栈架构师(AI + GIS + Backend)& 数字芯片系统架构师(FPGA),NorthCity Smile的博客(NcSmile,博主域名:https://ncmile.blog.csdn.net) 8178

英飞凌TC377的Flash管理、UCB配置与HSM安全机制解析

本文深入解析了英飞凌TC377微控制器的Flash存储结构、UCB配置机制与HSM安全模块。详细阐述了带Cache与不带Cache的PFlash地址访问差异、利用SOTA与AB Swap实现无感OTA更新的原理,以及如何通过UCB安全配置启动流程与写保护。重点剖析了HSM硬件安全模块在密钥管理、安全启动与安全OTA中的核心作用,为开发高可靠性嵌入式系统提供实战指南。

weixin_29170327的博客 516

YOLOv11模型改进:利用注意力机制实现小目标检测精度跃升

如果你在实操中遇到精度提升不明显或速度下降过多的问题,不妨尝试调整注意力模块的类型(如替换为CA)或插入层级,或针对性优化小目标的数据集增强策略。记住,小目标检测的核心是“特征强化与空间定位”,只要结合业务场景灵活调整注意力模块的组合,你也能让YOLOv11在小目标识别任务中脱颖而出。接下来,我们从模块选型到代码落地,一步步带你打造“小目标检测专精版”YOLOv11,真正帮你解决工业场景中(如安防、质检)的小目标识别痛点。在城市安防场景中,改进后的YOLOv11对远处行人、车辆(小目标)的识别准确率提升。

m0_71589036的博客 445

使用SSH建立Git 远程仓库和本地库连接

添加远程库有两种方式:Https和SSH方式。 我这里选择SSH方式,因为HTTPS方式每次都需要用户验证,麻烦。 SSH每次传代码时不需要输入账号和密码(注意电脑要先配SSH的公钥),然后将地址粘贴到上面 初识github远程库与本地库连接,在学习如何用SSH添加远程库时走了一些弯路,这里将自己最终正确的顺序记录一下: 文章目录1、先设置git提交时的用户名和邮箱(初次一定要设置)2、创建S...

Silence-Lee的博客 1万+

非结构化数据在大数据湖中的应用实践

想象一下,你正在整理一个杂乱的书房。有些书整整齐齐地放在书架上,每本书都有明确的标题、作者和出版日期——这些就是结构化数据,它们像数据库中的表格,有固定的格式和字段。但书房里还有更多东西:散落的照片、手写的笔记、录音带、视频光盘、甚至还有画作。这些物品没有固定的格式,每件都独一无二——这就是非结构化数据。在技术术语中,非结构化数据是指没有预定义数据模型或组织形式的信息。文本文档(Word、PDF、TXT)电子邮件和社交媒体内容图像和照片(JPG、PNG)音频文件(MP3、WAV)

软件工程实践的博客 358

github配置ssh连接

github配置ssh连接

牛牛博士博客 4501

GitLab CI/CD .gitlab-ci.yml 关键词(十一):发布版本 release

本篇文章介绍使用GitLab CI/CD 发布一个版本,对外发布。并填写一些发布的信息。

知无涯 4713

银行统一监管报送系统

依据《银行业金融机构数据治理指引》,银行业金融机构应当建立适应监管数据报送工作需要的信息系统,实现流程控制的程序化,提高监管数据加工的自动化程度。银行业金融机构应当将监管数据纳入数据治理,建立工作机制和流程,确保监管数据报送工作有效组织开展,监管数据质量持续提升。银行通常要对接报送EAST5.0、1104、CRSS等近40个监管应用,涉及近1000张报表。表13-01是主要的监管报送应用、报送依据、报送规范、监管机构名称。

银行信息系统应用架构详解 4337

使用 SSH 连接 GitHub

📋 二、复制公钥复制输出的那一整行内容(以 ssh-rsa 开头)。

強雲的博客 2390

YOLOv12改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

《YOLOv12高效涨点改进专栏》提供500+创新改进方案,涵盖卷积、主干网络、注意力机制等模块优化,适用于检测、分割等任务。改进点来自顶会论文和个人经验,支持多种模型版本和任务场景。专栏包含详细教程、数据集增强、性能评估工具等,帮助科研人员快速实现模型优化和论文发表。提供完整运行项目和环境配置指导,适合计算机及相关专业研究人员使用,持续更新保障长期科研需求。

Ai缝合怪、助力小伙伴高效发论文 2280

使用SSH方式实现Git远程连接GitHub

git是目前世界上最先进的分布式版本控制系统,相比于SVN,分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作!当有网络的时候,再把本地提交推送一下就完成了同步,非常方便,故而也得到了广大IT工作者的青睐! 关于git的安装和基本配置,这里不再赘述,在Windows上使用Git,可以从Git官网直接下载https://git-scm.com/dow...

yunbao_bau 4150

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【GIT】git连接通过ssh连接github

git连接通过ssh连接github 解决git连接通过ssh连接github 1. 首先产生一个rsa的私钥和公钥 ssh-keygen -t rsa -C "15950093214@163.com" //你的github邮箱帐号 执行完该语句之后,会在默认的目录中产生连个文件,我这里的默认目录是(/Users/jums/.ssh),产生的两个文件如下: 我们...

麦田里的守望者 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

如何使用 Git 和 SSH 将项目推送到 GitHub

本文详细介绍了如何使用 Git 和 SSH 将本地项目推送到 GitHub 仓库。内容涵盖了 Git 的安装、SSH 密钥的生成与配置、将公钥添加到 GitHub、以及如何通过 SSH 连接将本地代码推送到远程仓库的完整流程。文章还介绍了常见问题的解决方法,例如权限错误、连接超时等,帮助开发者更好地管理和推送代码到 GitHub。通过本教程,读者能够掌握 Git 和 GitHub 的基础操作,实现代码版本控制和远程协作。

m0_72932408的博客 2995

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Git配置 SSH Key 并连接 GitHub

这样,GitHub SSH Key 就配置成功了!接着会提示输入密码(可以留空,直接回车)。,说明已有 SSH Key,可以跳过。请换成你的 GitHub 绑定邮箱。,则需要生成新的 SSH Key。直接按 Enter,使用默认路径。在 Git Bash 或终端运行。然后复制输出的内容(从。开头到你的邮箱结尾)。SSH Keys 页面。

2301_80225222的博客 1814

Git连接Github

1.安装Git 1.下载git 下载链接:https://git-scm.com/ 进入页面之后,如下图所示: 点击红色方框中的Download 2.31.1 for Windows,跳转到下图所示页面: 根据你电脑的位数选择下载的版本,如果是32位则选择红色方框中对应的:32-bit Git for Windows Setup。如果是64位则选择红色方框中对应的64位:64-bit Git for Windows Setup。我的电脑是64位,所以下载之后得到下图所示安装包: 至此,git下载完成,

qq_39909808的博客 3550

Git连接Github(SSH方式)

介绍一下怎么使用ssh方式连接远程仓库

brilliant_zy的博客 880

Mac下git通过SSH进行免密码安全连接github

SSH提供基于非对称加密的认证机制,创建一对非对称密钥(public/private key pair),并把公钥放到需要访问的服务器上以供授权验证。

曾梦想仗剑走天涯 6万+

git——使用ssh连接远程仓库

git——使用ssh连接远程仓库

weixin_44784401的博客 8602
上一篇: C语言——从链接属性方面看指针变(常)量与数组名的不同
下一篇: linux文件与目录权限
HilariousDog
博客等级 码龄6年 335粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HilariousDog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值