Github使用ssh密钥登陆
Github使用ssh密钥登陆生成SSH密钥配置Github检查SSH连接使用Github附录:更改密钥名称方法一:为已创建的密钥改名方法二:创建时使用新的名称参考链接想要从linux命令行clone github仓库的话,目前只支持ssh方式了。这里总结一下如何生成ssh 公钥和私钥,以及如何配置以登陆github。生成SSH密钥Linux自带生成SSH密钥的程序。打开终端,不用开启root,输
想要从linux
命令行clone
github
仓库的话,目前不支持HTTPS
的方式了。那么不想使用Github CLI
的话,就必须配置SSH
连接了。
这里就总结一下如何生成ssh
公钥
和私钥
,并配置以登陆github
。
生成SSH密钥
Linux
自带生成SSH
密钥的程序。
打开终端,不用开启root
,输入
ssh-keygen -t rsa
就会在~/.ssh
下生成一个私钥id_rsa
,和一个公钥id_rsa.pub
。
生成过程中会询问是否设置passphrase
,这就相当于保护这个私钥的密码,避免被破译。
安全起见,建议设置密码。
配置Github
- 复制公钥文件的内容(可以用cat命令查看),
cat ~/.ssh/id_rsa.pub
Github
中,打开Settings
>SSH and GPG keys
>New SSH key
.
- 在
Key
文本框中粘贴上复制好的公钥内容,并且设置好Title
后,点击Add SSH key
。
.
检查SSH连接
在Linux
命令行中输入
ssh -T git@github.com
如果设置了passphrase
,此时会被要求输入设置好的passphrase
。
Enter passphrase for key 'pass/to/private/key':
之后,如果收到下面的提示,则表示设置成功。
Hi xxxx! You've successfully authenticated, but GitHub does not provide shell access.
否则,可能会看到这样的提示
Permission denied (publickey).
这时可以参考这个链接进行问题解决 Error: Permission denied (publickey)
如果除了permission denied
以外,还出现了:sign_and_send_pubkey: signing failed: agent refused operation
的报错提示,有两种解决方法:
.ssh
文件夹由于手动创建的原因权限不足。运行下面这行代码即可chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
- 密钥没有被添加到缓存中。运行
ssh-add
来添加,随后运行ssh-add -l
来检测是否添加成功
使用Github
现在,就可以开心的在Linux
中clone
各种github
仓库了
附录:更改密钥名称
如果觉得id_rsa
这样的名字不够让人满意的话,可以通过下面的方式改名。
方法一:为已创建的密钥改名
首先,用mv
之类的命令更改~/.ssh
中的密钥名。
mv id_rsa new_private_key_name
mv id_rsa.pub new_public_key_name.pub
但是这样有时还是会出现Permission denied (publickey).
这样的情况.
这是因为,ssh
命令默认只会读取id_rsa
这个私钥,所以如果改变私钥名称的话,需要相应地修改配置文件~/.ssh/config
。
比如像下面这样:
Host github.com gist.github.com api.github.com
IdentityFile /path/to/renamed/private/key
方法二:创建时使用新的名称
Linux
下创建SSH
密钥时,可以利用参数指定新的名称
ssh-keygen -t rsa -f ~/.ssh/customized_key_name
如果出现Permission denied (publickey)
,请参照方法一中的解决办法。
参考链接
ssh-keygen之后,生成的密码都叫id_rsa.pub,我想改名不行吗?- segmentfault
How to solve “sign_and_send_pubkey: signing failed: agent refused operation”?
更多推荐
所有评论(0)