直接clone失败
注意配置用户名和email
git config --global user.name 'yourname'git config --global user.email 'your@email'#查看所有配置信息
git config --list
创建密钥(注意)
命令:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
请注意:这里的C/Users/admin/.ssh/id_rsa
已经存储了密钥,如果还是指定这个默认的文件会导致覆盖问题,所以我们需要重新指定一个文件名,而这里的新文件名就和后面的连接有关
一般一路enter就行,不考虑设置密码:
在运行 ssh-keygen 时,系统会提示你输入一个 密码短语(passphrase)。这个密码短语是用来保护你的 SSH 私钥的,如果没有密码短语,任何人只要获得你的私钥,就可以使用它来进行认证。因此,你可以选择设置一个密码短语来提高安全性。
Enter passphrase: 这是你为 SSH 私钥设置的密码短语。如果你想增加安全性,可以设置一个密码短语。设置密码短语后,在每次使用 SSH 密钥时(例如,克隆仓库),你需要输入这个密码。
Enter same passphrase again: 这一步是让你确认密码短语是否正确。
如果你不想设置密码短语(即不想每次使用 SSH 密钥时输入密码),可以按 Enter 键跳过这一步骤。
两个选择:
设置密码短语:提高安全性,但每次使用私钥时需要输入密码短语。
不设置密码短语:简化使用,但安全性稍差,任何获取到私钥的人都可以使用。
如果你选择不设置密码短语,可以直接按 Enter 跳过这一步。如果你决定设置密码短语,输入并确认密码即可。
总结:
设置密码短语:可以提高安全性,但稍微麻烦。
不设置密码短语:每次使用 SSH 密钥时不需要输入密码,简化使用。
之后对应路径会生成相应的密钥
将pub里面的密钥复制到gitlab的sshkey中
在右边选择add new key
问题来了
使用ssh -T git@git.xxxxxxx.cn
连接对应的仓库时候
原因是:我的 SSH 配置文件没有默认使用 id_rsa_gitlab 这个密钥,因此 ssh -T git@git.xxxxx.cn 默认使用了其他的密钥(例如 id_rsa),这导致连接失败。而当我显式指定 -i ~/.ssh/id_rsa_gitlab 时,才使用了正确的密钥文件,所以连接成功
成功一般会提示welcome
但是git clone仓库失败
出错原因
这里报错信息原因是:
SSH 配置文件未正确设置
如果你使用了多个 SSH 密钥(例如这里的 id_rsa 和 id_rsa_gitlab),Git 没有正确使用 id_rsa_gitlab。
解决方法
配置 SSH 使用指定密钥
由于使用了多个 SSH 密钥(如 id_rsa 和 id_rsa_gitlab),需要在 SSH 配置文件中明确指定 id_rsa_gitlab 用于 git.dslab.lzu.edu.cn。
编辑 SSH 配置文件 ~/.ssh/config,添加以下内容:
Host git.xxx.cnHostName git.xxx.cnUser gitIdentityFile ~/.ssh/对应私有密钥IdentitiesOnly yes
保存后重新测试:
ssh git@git.xxx.cn
再次尝试克隆:
git clone git@git.xxx.cn:xxx/hospital.git
如果没有config文件
~/.ssh/ 目录下没有找到 config 文件,可以自己创建一个新的 config 文件。下面是创建和配置步骤:
- 创建 SSH 配置文件
打开终端,进入 ~/.ssh/ 目录:
cd ~/.ssh
创建一个新的 config 文件:
touch config
然后找到config,直接用记事本打开,输入
Host git.xxx.cnHostName git.xxx.cnUser gitIdentityFile ~/.ssh/对应私有密钥IdentitiesOnly yes
对应的内容替换即可
此处操作
然后ssh git@git.xxx.cn
执行clone操作:成功