windows系统git使用ssh方式和gitee/github进行同步
<h2 id="前言">前言</h2><p>在从github/gitee远程仓库获取代码时,除了使用https方式,我们还可以使用ssh连接的方式与远程仓库服务器通信,其好处是有时会比https更方便、稳定、快速。</p>
<p>和与普通的linux服务器连接一样,为了免去每次远程操作都要输入用户名和密码的苦恼,我们可以选择使用 密钥对 的方式免密登录。</p>
<h2 id="准备工作win11">准备工作(win11)</h2>
<p>使用git来clone项目有两种方式:HTTPS和SSH:</p>
<p>HTTPS:不管是谁,拿到url随便clone,但是在push的时候需要验证用户名和密码;<br>
SSH:clone的项目你必须是拥有者或者管理员,而且需要在clone前添加SSH Key。SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。</p>
<p>https的方式比较好理解,本文以SSH为例来讲解Windows系统git使用ssh方式来gitee进行同步(<strong>github</strong>类似)。</p>
<p>Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。</p>
<p>1,如果是win10,则推荐本地安装windows terminal( https://learn.microsoft.com/zh-cn/windows/terminal/install )。<br>
2,安装git。<br>
3,有一个gitee账户并创建一个仓库。</p>
<h2 id="步骤一生成ssh私钥和公钥并配置gitee公钥">步骤一,生成ssh私钥和公钥并配置gitee公钥</h2>
<p>打开terminal,运行ssh-keygen<br>
过程会提示文件保存路径、密码,不用输入,连续两次回车。</p>
<p><img src="https://img2023.cnblogs.com/blog/157572/202304/157572-20230418102245075-1877843935.png" alt="ssh-keygen" loading="lazy"></p>
<p>打开 C:\Users\当前用户.ssh 目录,会有两个文件id_rsa(私钥)id_rsa.pub(公钥)</p>
<blockquote>
<p>这里千万注意,window自带的ssh客户端其配置目录位于C:\Users\当前用户.ssh,必须在这目录下。<br>
id_rsa文件(私钥)<br>
id_rsa.pub文件(公钥)</p>
</blockquote>
<p><img src="https://img2023.cnblogs.com/blog/157572/202304/157572-20230418103952937-360120673.png" alt="目录文件" loading="lazy"></p>
<p>记事本打开<strong>id_rsa.pub</strong>公钥文件,复制内容到gitee公钥里(https://gitee.com/profile/sshkeys),标题随便写。点确定保存。</p>
<p><img src="https://img2023.cnblogs.com/blog/157572/202304/157572-20230418102245895-902085648.png" alt="gitee公钥配置" loading="lazy"></p>
<blockquote>
<p>注意这里的指纹哈希sha256和上面命令行生成的指纹是一致的,证明复制正确</p>
</blockquote>
<h2 id="步骤二配置ssh客户端踩了很多坑">步骤二,配置ssh客户端(踩了很多坑)</h2>
<p>window自带的ssh客户端其配置目录位于C:\Users\当前用户.ssh<br>
确保该目录下的两个文件id_rsa(私钥),不能改名</p>
<p>测试ssh是否能连接成功,terminal运行:</p>
<p><code>ssh -T git@gitee.com</code></p>
<p>提示 You've successfully authenticated</p>
<p><img src="https://img2023.cnblogs.com/blog/157572/202304/157572-20230418102246018-1119321095.png" alt="ssh -T git@gitee.com" loading="lazy"></p>
<p>另:遇到的其他情况的处理,</p>
<p><img src="https://img2023.cnblogs.com/blog/157572/202304/157572-20230418102245197-1886349520.png" alt="问题处理" loading="lazy"></p>
<h2 id="步骤三复制ssh仓库url非https克隆代码">步骤三,复制ssh仓库url(非https)克隆代码</h2>
<p>找到正确ssh地址</p>
<p><img src="https://img2023.cnblogs.com/blog/157572/202304/157572-20230418102246001-462636862.png" alt="找到ssh地址" loading="lazy"></p>
<p>开始git clone仓库(clone完毕后git remote -v验证远程连接)</p>
<p><img src="https://img2023.cnblogs.com/blog/157572/202304/157572-20230418102245987-1941915627.png" alt="git clone" loading="lazy"></p>
<h2 id="踩坑总结">踩坑总结</h2>
<p>主要是ssh客户端设置,window自带的ssh客户端,其config配置位于<strong>C:\Users\当前用户.ssh</strong> 目录,ssh命令执行的时候依赖.ssh目录的配置,ssh-keygen默认生成(rsa加密)私钥文件id_rsa,一定位于.ssh文件夹之下,且不能改名!<br>
如果id_rsa位于其他文件夹,例如d:\sshconfig\,那么运行ssh命令需要加 -i参数,不过可能遭遇WARNING: UNPROTECTED PRIVATE KEY FILE!,具体解决方法可以搜索解决</p>
<blockquote>
<p>ssh -T git@gitee.com -i d:\sshconfig\</p>
</blockquote>
<p>i参数说明:<br>
-i identity_file A file from which the identity key (private key) for public key authentication is read.</p>
<h2 id="参考资料">参考资料:</h2>
<p>更多关于win10 ssh客户端的说明,参考: https://learn.microsoft.com/zh-cn/windows/terminal/tutorials/ssh<br>
更多关于ssh命令的参考:https://www.ssh.com/academy/ssh/command<br>
更多关于ssh-keygen命令的参考: https://www.ssh.com/academy/ssh/keygen<br>
生成/添加SSH公钥:https://gitee.com/help/articles/4181</p>
<hr>
<p>前往了解<strong>国思RDIF</strong>低代码开发平台:www.guosisoft.com<br>
<img src="https://img2023.cnblogs.com/blog/157572/202304/157572-20230414113846744-1464148608.png" alt="国思RDIF低代码开发平台" loading="lazy"></p>
</div>
<div id="MySignature" role="contentinfo">
<span style="font-size:10pt;">
</span>
<p>
<br />
</p>
<p style="background-color:#f8f8ee;font-family:微软雅黑;font-size:12px;" id="mySignature">
<span style="font-size:10pt;">作者:</span>
<strong>
<span style="color:red;font-size:12px;">
<span>
<span style="font-size:10pt;">RDIF</span>
</span>
</span>
</strong>
<br />
<span style="font-size:10pt;">出处:</span>
<span style="font-size:10pt;">http://www.cnblogs.com/huyong/</span>
<br />
<span style="font-size:10pt;">Email:</span>
<span style="font-size:10pt;">406590790@qq.com</span>
<br />
<span style="font-size:10pt;">QQ:</span>
<span style="font-size:10pt;">406590790</span>
<br />
<span style="font-size:10pt;">微信:</span>
<span style="font-size:10pt;">13005007127(同手机号)</span>
<br />
<span style="font-size:10pt;">框架官网:</span>
<span style="font-size:10pt;">http://www.guosisoft.com/</span>
<span style="font-size:10pt;">http://www.rdiframework.net/</span>
<br />
<span style="font-size:10pt;">框架其他博客:</span>
<span style="font-size:10pt;">http://blog.csdn.net/chinahuyong</span>
<br />
<span style="font-size:10pt;">http://www.cnblogs.com/huyong</span>
<br />
<span style="font-size:10pt;">国思RDIF开发框架</span>
,
<span style="font-size:10pt;color:#FFFFFF;background-color:#009900;">给用户和开发者最佳的.Net框架平台方案,为企业快速构建跨平台、企业级的应用提供强大支持。</span>
<br />
<span style="font-size:10pt;">关于作者:系统架构师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,在面向对象、面向服务以及数据库领域有一定的造诣。现主要从事基于</span>
<span style="font-size:10pt;">RDIF</span>
<span style="font-size:10pt;">框架的技术开发、咨询工作,主要服务于金融、医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。</span>
<br />
<span style="font-size:10pt;">如有问题或建议,请多多赐教!</span>
<br />
<span style="font-size:10pt;">本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过微信、邮箱、QQ等联系我,非常感谢。</span>
</p><br><br>
来源:https://www.cnblogs.com/huyong/p/17328674.html
頁:
[1]