Github上配置SSH
本文介绍了如何在Github上配置SSH,以及当有多个Github账号时又该如何进行配置。
注意
本文在于介绍与Github相关的SSH配置,关于SSH本身,比如SSH密钥的生成、本地SSH相关文件等,详见:SSH Notes,本文不赘述。
Github配置SSH
生成ssh密钥
运行ssh-keygen
生成一个SSH密钥
|
|
生成的默认SSH私钥文件是~/.ssh/id_ed25519
,对应的公钥文件是~/.ssh/id_ed25519_pub
,后续需将公钥文件的内容粘贴到Github上。
在Github上配置SSH
在GitHub任意页的右上角,单击个人资料照片,然后单击Settings
进入设置。
在SSH and GPK keys
设置中点击New SSH key
Title
自定义取个名字,Key type
默认的Authentication Key
即可,将本地的公钥文件的内容复制到Key
中,保存。
报错
ssh: connect to host github.com port 22: Operation timed out
在SSH
的配置文件~/.ssh/config
添加如下配置
|
|
多个Github账号配置SSH
当自己有多个Github账号,在一台电脑上同时用到这两个账号的仓库时,需要进行额外的配置。
生成多个SS密钥
一个Github账号需要生成一个SSH密钥,比如现在生成如下两个SSH密钥
|
|
将公钥添加到对应的Github账号
将生成的两个SSH公钥文件的内容分别添加到对应的Github账号上,见上文。
本地配置SSH
在SSH配置文件~/.ssh/config
中添加以下内容:
|
|
如果遇到了上面提到的问题ssh: connect to host github.com port 22: Operation timed out
,可将上述内容修改成下面内容:
|
|
多个SSH密钥的使用
比如上述SSH密钥~/.ssh/id_ed25519_github_alan
对应用户名为alan
的Github账号,~/.ssh/id_ed25519_github_bob
对应用户名为bob
的账号,现在需要克隆alan
和bob
的仓库,在Github上复制仓库的地址后,一般使用的克隆仓库的命令分别如下:
|
|
那么,在进行上述配置后,现在命令应该分别修改成:
|
|
也就是将原来仓库地址中的git@github.com
替换成上面~/.ssh/config
文件中设置的对应SSH密钥的Host
值。
更改本地远程仓库的地址
比如在原来本地某个仓库中运行命令git remote -v
,得到的结果如下:
|
|
由于上面对SSH配置文件进行了修改,需要使用下面的命令更改远程仓库的地址:
|
|
这样的话,这个仓库后续使用的SSH密钥就是~/.ssh/id_ed25519_github_alan