第一步
- 打开 mac terminal(终端)
输入: cd ~/.ssh/ - 进入到 .ssh 文件夹后
输入: ls -l (查看已知的文件列表)
第二步
- 输入: ssh-keygen -t rsa -C "xxxx@email.com"
- 出现第一个回车的地方: **Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa) ** , 此处让你输入保存的文件名称,最好用 id_rsa_xxx 进行保存, 以区别其他的。
- 然后接下来两个回车是让你 输入密码、确认密码,此处不设置,直接回车操作即可。
第三步
- 输入: ls -l 查看文件列表,此时会发现id_rsa_xxx 和 id_rsa_xxx.pub 文件。 那么说明生成秘钥成功了。
- 此时输入: more id_rsa_xxx.pub 查看文件id_rsa_xxx.pub 的内容信息并复制。
- 打开 公司的 GitLab 在个人设置界面左侧 找到 SSH Keys 添加进去保存即可。
第四步
- 此时在 .ssh 文件夹内 找到 config 文件. 如果没有,请输入: touch config 注意没有后缀名。
- 配置 config 文件参数如下:
Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
HostName : 要登录主机的主机名
User : 登录名
IdentityFile : 指明上面User对应的identityFile路径
参考笔者:
Host git@code.xxxxxx.com
HostName https://code.xxxxxx.com
User git
IdentityFile ~/.ssh/id_rsa_xxx - 此时输入: source config 使config 文件立即生效,而不必注销并重新登录。
第五步
- 在 .ssh 文件夹内 找到 known_hosts 文件,如果没有,请输入: touch known_hosts 注意没有后缀名。
第六步
- 输入: sudo ssh-add id_rsa_xxx 让新创建的秘钥加入到 ssh-agent高速缓存中。
第七步
- 输入: ssh -T git@code.xxxxxx.com 命令,会看到
Welcome to GitLab, xxxxxx
,此时恭喜你,已经配置成功了。 - 如果看到
Permission denied
,那么表示没有成功。 那么输入: ssh -Tv git@code.xxxxxx.com 查看打印调试信息。依错误提示进行操作。
常见的异常情况
- 找不到密码,或者密码错误。
git@gitlab.xxxxxxx.com’s password: Permission denied, please try again.
重走上面的流程,设置密码等等。 - 重新走第四步、第六步。 尤其是第六步很关键。笔者就是这么解决的。
配置成功后依然需要输入密码
- 部分同学在配置成功后,依然需要输入密码才能 使用 git pull 等操作。
git pull
Username for ‘https://code.xxxxxx.com’:
Password for ‘https://code.xxxxxx.com’:
此时,输入命令: git remote -v 查看当前仓库的远程连接url 地址,如果发现是 :
origin https://code.xxxxxx.com/xxx/xxxx.git (fetch)
origin https://code.xxxxxx.com/xxx/xxxx.git (push)
- 此时需要修改远程的连接方式,输入: git remote set-url origin git@code.xxxxx.com:xxxx/xxxxx.git 设置连接远程仓库的方式为 SSH 方式。然后再操作 git pull 等即可正常操作。