How to use the GitBash to clone data with ssh (win

2020-03-31 08:09发布

问题:

What can I solve this problem?
when I wanted to connect my personal GitLab account, I got an error message like the following picture

### shell script     
git clone git@gitlab.com:<username>/test1.git

GitLab server-side

Clone ssh address

PS: I have checked and found some reference from StackOverflow but unfortunately it isn't okay for me
1.git clone through ssh
2.SSH and Git Clone
3.git clone with ssh issue

回答1:

I have found a great reference but sorry for Mandarin website, however, I can use my way to share how to deal with this issue.

Step 1:

ls -al ~/.ssh

Step 2:

ssh-keygen 

(using enter key for default value) Step 3: To setup config file

vim /c/Users/Willie/.ssh/config

Host gitlab.com
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_rsa

Step 4:

git clone git@gitlab.com:<username>/test2.git

Step 5:
When you finished Step 4
1.the test2.git file will be download done
2.you will get the new file(known_hosts) in the ~/.ssh

PS: I create the id_rsa and id_rsa.ub by myself and I deliver it to the Gitlab server. using both keys to any client-sides(windows and Linux).



回答2:

Check first if you do have a ~/.ssh/id_rsa private key/~/.ssh/id_rsa.pub public key.

If so, check your private key: if it has 70 chars per line, try and regenerate with the old PEM format:

ssh-keygen -m PEM -t rsa -P "" -f ~/.ssh/id_rsa

(That will override your current key, but if said current key is not working anyway, that should be OK).
Update the public key on GitLab side, and try again, with a simple:

ssh -T git@gitlab.com

Using a config file means not using the user and using a shorter name:

Host gitlab
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_rsa 

means: ssh -T gitlab or git clone gitlab:<username>/test2.git will work.