WSL无法通过SSH从git拉取仓库代码

这篇具有很好参考价值的文章主要介绍了WSL无法通过SSH从git拉取仓库代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

在上一篇博客中,解决了无法从git拉取仓库到本地的问题,但是当时的办法并未完全解决这个问题,当时只能通过HTTPS协议拉取git仓库,下面介绍如何通过SSH从git拉取仓库,过程参考了这篇博客。

生成SSH密钥对

cd ~/.ssh
ssh-keygen -t ed25519 -C "yang1294891635@gmail.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/yukeyang/.ssh/id_ed25519): id_ed25519
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_ed25519
Your public key has been saved in id_ed25519.pub
The key fingerprint is:
SHA256:/V+VhNBWst//P3fRGfF/1mVEOH3UCuOPI5ZwidxEqNo yang1294891635@gmail.com
The key's randomart image is:
+--[ED25519 256]--+
|         o.....*+|
|        . . +o*.=|
|       o + o.= =+|
|      . +.+ . +.*|
|     o  So.. o +X|
|    . E   +.o .oO|
|         . ... .=|
|             . o+|
|              . B|
+----[SHA256]-----+

执行上面的命令后,会在命令窗输出公钥的信息,我的公钥是SHA256:/V+VhNBWst//P3fRGfF/1mVEOH3UCuOPI5ZwidxEqNo yang1294891635@gmail.com

同时,会在当前目录生成id_ed25519和id_ed25519.pub这两个密钥对文件,pub后缀名的文件是公钥,另一个是私钥。

yukeyang@DESKTOP-QFK2F47:~/myfiles/assignment-2-yang-yuke$ ls -a ~/.ssh/
.  ..  id_ed25519  id_ed25519.pub  id_rsa  id_rsa.pub  known_hosts

将公钥添加到git

打开github,点击右上角个人图标,然后点击Settings,进入设置界面,然后点击SSH and GPG keys,再点击New SSH Key。
WSL无法通过SSH从git拉取仓库代码,开发环境问题,ssh,git
将上面的公钥信息填到Key文本框里,然后点击Add SSH Key。
WSL无法通过SSH从git拉取仓库代码,开发环境问题,ssh,git

添加私钥到本地的SSH agent

yukeyang@DESKTOP-QFK2F47:~/myfiles/assignment-2-yang-yuke$ eval "$(ssh-agent -s)"
Agent pid 553
yukeyang@DESKTOP-QFK2F47:~/myfiles/assignment-2-yang-yuke$ ssh-add ~/.ssh/id_ed25519
Identity added: /home/yukeyang/.ssh/id_ed25519 (yang1294891635@gmail.com)

生成配置文件

到这里,虽然把SSH公钥添加到了github上,把私钥也添加到了SSH agent,但还需要配置文件,否则还是可能无法通过SSH连接到github服务器。

输入以下命令,在~/.ssh目录下创建名为config的文件。

yukeyang@DESKTOP-QFK2F47:~/myfiles/assignment-2-yang-yuke$ cd ~/.ssh
yukeyang@DESKTOP-QFK2F47:~/.ssh$ vim config

按照以下文本格式修改你的config文件,User改成你自己的邮箱即可。

Host github.com
User yang1294891635@gmail.com
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519
Port 443

测试SSH连接

完成上述步骤后,应该就可以通过SSH连接git服务器了,输入以下命令测试一下,可以看到,已经可以通过SSH连接git服务器了。

yukeyang@DESKTOP-QFK2F47:~/.ssh$ ssh git@github.com
The authenticity of host '[ssh.github.com]:443 ([20.205.243.160]:443)' 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 '[ssh.github.com]:443,[20.205.243.160]:443' (ECDSA) to the list of known hosts.
PTY allocation request failed on channel 0
Hi yang-yuke! You've successfully authenticated, but GitHub does not provide shell access.
Connection to ssh.github.com closed.

通过SSH协议拉取git仓库

复制git仓库的SSH协议的URL。
WSL无法通过SSH从git拉取仓库代码,开发环境问题,ssh,git

执行以下命令,使用SSH类型的URL来拉取git仓库,可以看到,已经可以成功地拉取git仓库到本地了。

yukeyang@DESKTOP-QFK2F47:~/myfiles/assignment-2-yang-yuke$ git remote add assignments-base git@github.com:cu-ecen-aeld/aesd-assignments.git
yukeyang@DESKTOP-QFK2F47:~/myfiles/assignment-2-yang-yuke$ git fetch assignments-base
remote: Enumerating objects: 339, done.
remote: Counting objects: 100% (87/87), done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 339 (delta 62), reused 46 (delta 46), pack-reused 252
Receiving objects: 100% (339/339), 55.26 KiB | 73.00 KiB/s, done.
Resolving deltas: 100% (130/130), done.
From github.com:cu-ecen-aeld/aesd-assignments
 * [new branch]      assignment2                -> assignments-base/assignment2
 * [new branch]      assignment3-part-1         -> assignments-base/assignment3-part-1
 * [new branch]      assignment3-part-2         -> assignments-base/assignment3-part-2
 * [new branch]      assignment4                -> assignments-base/assignment4
 * [new branch]      assignment5                -> assignments-base/assignment5
 * [new branch]      assignment6                -> assignments-base/assignment6
 * [new branch]      assignment7                -> assignments-base/assignment7
 * [new branch]      assignment8                -> assignments-base/assignment8
 * [new branch]      assignment9                -> assignments-base/assignment9
 * [new branch]      finder-test-fix            -> assignments-base/finder-test-fix
 * [new branch]      master                     -> assignments-base/master
 * [new branch]      update-assignment-autotest -> assignments-base/update-assignment-autotest
 * [new branch]      yaml-fix-A3P1              -> assignments-base/yaml-fix-A3P1
 * [new branch]      yaml-fix-A3P2              -> assignments-base/yaml-fix-A3P2
 * [new branch]      yaml-fix-a1                -> assignments-base/yaml-fix-a1
 * [new branch]      yaml-fix-a2                -> assignments-base/yaml-fix-a2

参考

[1] 解决git clone无法克隆开源代码问题:ssh: connect to host github.com port 22: Connection refused文章来源地址https://www.toymoban.com/news/detail-819533.html

到了这里,关于WSL无法通过SSH从git拉取仓库代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 将项目复制到新电脑之后, 无法通过git 进行拉取代码/查看历史提交记录等操作

    将项目代码整体打包到新环境(新电脑), 在idea/pycharm下载好git相关插件并打开项目之后, 通过git拉取代码失败(gitlab/git/gtee) 最近因工作原因需要讲电脑上的代码迁移到新电脑上, 但是将idea以及git插件等配置好之后, 打开项目, 发现无法查看之前的提交记录, 即使点击刷新也无法查

    2024年02月04日
    浏览(71)
  • 【Git】远程仓库的创建、SSH协议克隆、拉取、推送

    目录 一、创建远程仓库 二、HTTPS协议克隆仓库 三、SSH协议克隆仓库 四、向远程仓库推送 五、从远程仓库拉取 六、忽略特殊文件 七、配置命令别名 首先我们可以从GitHub或者Gitee中创建自己的个人仓库 工作台 - Gitee.com https://gitee.com/ 当我们的仓库创建好之后,我们可以在仓库

    2024年02月08日
    浏览(81)
  • WSL2 git clone命令无法克隆远程仓库

    最近在往WSL2里拉取git仓库的时候,突然出现了这个问题,WSL2无法连接到git服务器,导致代码无法拉取下来,可能是因为我最近不小心修改了windows的防火墙设置,导致出现了这个问题。 在查阅了很多篇博客以后,终于找到一篇博客可以解决我这个问题,下面记录一下详细过程

    2024年01月18日
    浏览(40)
  • git ssh拉取代码

    1.生成密钥 2.回车按三次,得到密钥 3.获取公钥 4.将SSH公钥添加至Github账户 5.完成-可以使用git连接下载代码啦

    2024年02月12日
    浏览(54)
  • git SSH 拉取代码

    1. 生成 SSH Key 2. 添加公钥(gitee/github) 3. 配置私钥 -(配置多个平台 git 私钥) 4. 使用 4.1 ssh 协议 git clone ssh://{user_name}@{Host}[:{port}]/{仓库路径[.git]} 例: git clone ssh://admin@github.com-1/a/b.git git clone ssh://admin@zhangsan:8888/a/b.git 4.2 git 协议 git clone git@{Host}[:{port}]/{仓库路径[.git]} 例:

    2024年02月14日
    浏览(50)
  • git使用ssh拉取代码

    要使用 SSH 协议拉取代码,你可以按照以下步骤进行设置: 生成 SSH 密钥 :如果你还没有生成 SSH 密钥,请首先生成一个。在终端中执行以下命令: 这将生成一对公钥和私钥。按照提示输入保存密钥的路径和密码(可选择)。 添加公钥到 GitHub :将生成的公钥添加到你的 Gi

    2024年02月13日
    浏览(50)
  • 使用git拉取仓库代码/将本地代码上传到远程仓库代码

    之前我们已经介绍过如何配置密钥,接下来我们就将本地写好的代码/将远程仓库代码拉取至本地。 1. 首先初始化git:命令git init 1.1 初始化完成之后,就可以拉取代码了,命令:git clone xxxxx,路径从仓库这边复制粘贴即可,注意我们在拉取代码之前可以新建一个文件夹将我们

    2024年02月12日
    浏览(70)
  • git使用教程 - pycharm拉取git仓库项目代码

    环境准备: 1.本地电脑已经安装了git 2.已经注册过github账号 3.pycharm pycharm配置 先自己注册github账号,本地安装git环境,打开Pycharm-File-Settings-Version control-Git设置页面,填写git在本地的地址 找到你要clone的代码仓库地址:   https://github.com/yoyoketang/pytest_jenkins_demo.git 备注: 如果是

    2024年01月25日
    浏览(55)
  • git关联两个远程仓库,一个仓库(github)拉取代码,另一个仓库(gitlab)推送代码

    有这种情况,小伙伴们在github上下载的开源项目(该开源项目还在继续开发维护),然后自己下载下来进行二次开发,然后又要把项目推送自己的gitlab私服上,这个时候不得不本地代码关联两个远程仓库。接下来我将一步步讲解如何关联两个远程仓库,并拉取github的开源项目

    2024年02月12日
    浏览(79)
  • 如何拉取 git 仓库中的最新代码?

    So easy!!!很简单!!!! 1. 确保Git已安装: 首先,确保在本地计算机上安装了Git。可以通过在命令行中输入 git --version 来检查Git是否已正确安装,并查看安装的版本号。 2. 打开命令行或终端: 打开命令行窗口或终端,进入要拉取代码的目录。可以使用 cd 命令来切换目录

    2024年02月08日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包