Github使用ssh密钥登陆

想要从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

  1. 复制公钥文件的内容(可以用cat命令查看),
    cat ~/.ssh/id_rsa.pub
    
  2. Github中,打开 Settings > SSH and GPG keys > New SSH key
    .
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  1. 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的报错提示,有两种解决方法:

  1. .ssh文件夹由于手动创建的原因权限不足。运行下面这行代码即可
    chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
    
  2. 密钥没有被添加到缓存中。运行ssh-add来添加,随后运行ssh-add -l来检测是否添加成功

使用Github

现在,就可以开心的在Linuxclone各种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),请参照方法一中的解决办法。


参考链接

generating SSH keys - Github

common SSH problems - Github

ssh-keygen之后,生成的密码都叫id_rsa.pub,我想改名不行吗?- segmentfault

SSH原理与运用 - 阮一峰的网络日志

How to solve “sign_and_send_pubkey: signing failed: agent refused operation”?

要在Linux配置GitHubSSH密钥,您可以按照以下步骤进行操作: 1. 首先,建议您设置一个密码以增加安全性。您可以使用以下命令复制公钥文件的内容:`cat ~/.ssh/id_rsa.pub`。\[1\] 2. 在GitHub上,打开"Settings",然后选择"SSH and GPG keys",点击"New SSH key"。 3. 在"Key"文本框中粘贴之前复制的公钥内容,并设置一个标题,然后点击"Add SSH key"。\[1\] 4. 您可以通过运行以下命令来检查SSH连接是否成功:`ssh -T git@github.com`。如果您看到类似于"Hi XXXXXX! You've successfully authenticated, but GitHub does not provide shell access."的消息,说明连接成功。\[2\] 如果您在配置过程中没有打印出name和email,这意味着您还没有进行相应的配置。您可以使用以下命令进行配置: - 配置用户名:`git config --global user.name "<userName>"` - 配置邮箱:`git config --global user.email "<email>"`\[3\] 另外,如果您还没有生成SSH密钥,您可以使用以下命令生成:`ssh-keygen -t rsa -C "<email>"`。\[3\] 这样,您就可以在Linux上成功配置GitHubSSH密钥了。 #### 引用[.reference_title] - *1* [Github使用ssh密钥登陆](https://blog.csdn.net/weixin_39591031/article/details/121368476)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [解决github配置ssh密钥后仍然需要登录](https://blog.csdn.net/weixin_44639164/article/details/122389112)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Github 配置ssh密钥](https://blog.csdn.net/qq_25473795/article/details/128245065)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值