Ubuntu上如何用GitHub免密拉取代码
June 12, 2020, 5:59 p.m.
1. 关于SSH
使用SSH协议,可以连接到远程服务器和服务并进行身份验证。
使用SSH密钥,可以连接到GitHub,而无需在每次访问时都提供用户名或密码。
2. 检查是否已经存在SSH秘钥
在生成SSH秘钥之前,可以检查一下是否已经存在SSH秘钥。
打开终端。
输入
ls -al ~/.ssh
看一下是否已经存在SSH秘钥:$ ls -al ~/.ssh # 如果存在,会列举出来相关文件
检查目录列表,以查看是否已经有公共SSH密钥。 默认情况下,公共密钥的文件名是以下之一:
- id_rsa.pub
- id_ecdsa.pub
- id_ed25519.pub
如果此目录下没有文件,即不存在SSH 秘钥,则进入第三步。
3. 生成新的SSH秘钥并添加到ssh-agent中
打开终端。
粘贴下面的命令,其中替换为你自己的GitHub邮件地址:
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
当系统提示“Enter a file in which to save the key(输入要在其中保存密钥的文件)”时,请按Enter。 这接受默认文件位置。
> Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]
在提示符下,输入一个安全密码,也可以直接Enter。
> Enter passphrase (empty for no passphrase): [Type a passphrase] > Enter same passphrase again: [Type passphrase again]
在添加新的SSH秘钥时,需要用ssh-agent管理你的秘钥,因此,启动ssh-agent。
$ eval "$(ssh-agent -s)" > Agent pid 59566
将SSH私钥添加到ssh-agent。 如果使用其他名称创建密钥,或者要添加具有其他名称的现有密钥,请使用私有密钥文件的名称替换命令中的id_rsa。
$ ssh-add ~/.ssh/id_rsa
4. 将SSH秘钥添加到你的GitHub账户上
用新的SSH秘钥配置GitHub账户。
- 复制SSH秘钥,也就是
~/.ssh/id_rsa.pub
文件。 - 进入GitHub个人账户,点击 Settings —>SSH and GPG keys—>New SSH key(随便起个名字,然后拷贝到Key字段中)—>Add SSH key—>输入账户密码。
5. 测试SSH连接
在测试SSH连接之前,确保已经完成了如上的步骤。
打开终端。
输入:
$ ssh -T git@github.com # Attempts to ssh to GitHub
你可能会看到类似的warning:
The authenticity of host ‘github.com (IP ADDRESS)’ can’t be established.
RSA key fingerprint is 16ac
76
2d
63
56
eb
a6:48.
Are you sure you want to continue connecting (yes/no)?或者:
The authenticity of host ‘github.com (IP ADDRESS)’ can’t be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?确认并输入yes:
> Hi username! You've successfully authenticated, but GitHub does not > provide shell access.
6. 参考阅读:
7. 可能会出现的Bug:
Bad owner or permissions on ~/.ssh/config:
chmod 600 ~/.ssh/config