問(wèn)題描述
在上一篇博客中,解決了無(wú)法從git拉取倉(cāng)庫(kù)到本地的問(wèn)題,但是當(dāng)時(shí)的辦法并未完全解決這個(gè)問(wèn)題,當(dāng)時(shí)只能通過(guò)HTTPS協(xié)議拉取git倉(cāng)庫(kù),下面介紹如何通過(guò)SSH從git拉取倉(cāng)庫(kù),過(guò)程參考了這篇博客。
生成SSH密鑰對(duì)
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]-----+
執(zhí)行上面的命令后,會(huì)在命令窗輸出公鑰的信息,我的公鑰是SHA256:/V+VhNBWst//P3fRGfF/1mVEOH3UCuOPI5ZwidxEqNo yang1294891635@gmail.com
同時(shí),會(huì)在當(dāng)前目錄生成id_ed25519和id_ed25519.pub這兩個(gè)密鑰對(duì)文件,pub后綴名的文件是公鑰,另一個(gè)是私鑰。
yukeyang@DESKTOP-QFK2F47:~/myfiles/assignment-2-yang-yuke$ ls -a ~/.ssh/
. .. id_ed25519 id_ed25519.pub id_rsa id_rsa.pub known_hosts
將公鑰添加到git
打開(kāi)github,點(diǎn)擊右上角個(gè)人圖標(biāo),然后點(diǎn)擊Settings,進(jìn)入設(shè)置界面,然后點(diǎn)擊SSH and GPG keys,再點(diǎn)擊New SSH Key。
將上面的公鑰信息填到Key文本框里,然后點(diǎn)擊Add SSH Key。
添加私鑰到本地的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,但還需要配置文件,否則還是可能無(wú)法通過(guò)SSH連接到github服務(wù)器。
輸入以下命令,在~/.ssh目錄下創(chuàng)建名為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
測(cè)試SSH連接
完成上述步驟后,應(yīng)該就可以通過(guò)SSH連接git服務(wù)器了,輸入以下命令測(cè)試一下,可以看到,已經(jīng)可以通過(guò)SSH連接git服務(wù)器了。
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.
通過(guò)SSH協(xié)議拉取git倉(cāng)庫(kù)
復(fù)制git倉(cāng)庫(kù)的SSH協(xié)議的URL。
執(zhí)行以下命令,使用SSH類型的URL來(lái)拉取git倉(cāng)庫(kù),可以看到,已經(jīng)可以成功地拉取git倉(cāng)庫(kù)到本地了。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-819533.html
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無(wú)法克隆開(kāi)源代碼問(wèn)題:ssh: connect to host github.com port 22: Connection refused文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-819533.html
到了這里,關(guān)于WSL無(wú)法通過(guò)SSH從git拉取倉(cāng)庫(kù)代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!