git 无法使用ssh协议连接

本文介绍了当使用git clone命令遇到Permission denied(publickey)错误时的解决步骤。通过重新添加密钥、检查密钥文件及使用ssh-agent等方法,最终实现了成功克隆项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 发现问题:

  使用 git clone 命令时出现Permission denied (public key) 。

二. 解决问题:

  1、首先尝试重新添加以前生成的key,添加多次,仍然不起作用。

  2、使用命令 ssh -v git@yourserver 测试,最后几行结果如下:   

    debug1: Authentications that can continue: publickey
    debug1: Next authentication method: publickey
    debug1: Trying private key: /home/gr/.ssh/id_rsa
    debug1: Trying private key: /home/gr/.ssh/id_dsa
    debug1: Trying private key: /home/gr/.ssh/id_ecdsa
    debug1: No more authentication methods to try.
    Permission denied (publickey).

  3、分析:尝试了3个private key,但都没有成功,最后是导致Permission denied.

  4、查看我的密钥, ls ~/.ssh/ :

    id_rsa id_rsa.pub  known_hosts    

  5、

执行ssh-add ~/.ssh/rsa

  报错(Could not open a connection to your authentication agent

先执行  eval `ssh-agent`  (是~键上的那个`) 再执行 ssh-add ~/.ssh/rsa成功

ssh-add -l 就有新加的rsa了

    2048 63:c5:d8:6c:a0:0c:a8:9c:26:d8:f8:95:de:29:04:eb /home/gr/.ssh/bajie (RSA)

  6、再使用ssh -v git@github.com测试连接,可以看到验证通过:

    debug1: Authentications that can continue: publickey
    debug1: Next authentication method: publickey
    debug1: Offering RSA public key: /home/gr/.ssh/bajie
    debug1: Server accepts key: pkalg ssh-rsa blen 279
    debug1: Authentication succeeded (publickey).
    Authenticated to github.com ([192.30.252.129]:22).

注释:如果是gitlab,提示不一样,但是可以明显看出连接成功

  7、最后git clone项目成功。


参考博客:

https://my.oschina.net/grnick/blog/201155

http://blog.youkuaiyun.com/roserose0002/article/details/40078577

http://blog.youkuaiyun.com/sunnypotter/article/details/18948053/

### 如何配置SSH私钥以通过SSH协议Git拉取代码 #### 配置SSH私钥的过程 为了能够通过SSH协议安全地访问远程Git仓库,需要完成一系列的配置工作。以下是关于如何配置SSH私钥的具体说明: 1. **检查现有的SSH密钥** 在开始之前,先确认本地是否存在已有的SSH密钥文件。通常这些文件位于用户的`.ssh`目录下,可以通过以下命令检查是否有现成的密钥对: ```bash ls ~/.ssh ``` 如果存在名为`id_rsa`(私钥)和`id_rsa.pub`(公钥)的文件,则无需重新创建[^2]。 2. **生成新的SSH密钥对** 若未发现任何可用的密钥对,可以运行如下命令来生成一个新的SSH密钥对: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 这里会提示输入保存位置,默认情况下推荐接受默认路径(即~/.ssh/id_rsa)。接着设置密码保护此私钥的安全性[^3]。 3. **添加新生成的SSH密钥至SSH代理程序** 使用下面这条指令启动SSH代理并将刚产生的私钥加入其中以便后续操作更加便捷高效: ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa ``` 4. **复制公钥内容上传到GitHub账户或其他Git服务提供商处** 执行下列命令获取公开部分的内容,并将其粘贴进目标平台上的相应区域(例如GitHub中的Settings -> SSH and GPG keys 页面下的 New SSH key 输入框内)。 ```bash cat ~/.ssh/id_rsa.pub ``` 5. **测试连接验证是否成功建立通信链路** 尝试利用以下方式检验能否顺利抵达指定主机端口的服务进程之上: ```bash ssh -T git@github.com ``` 成功的话应该收到一条欢迎消息表明一切正常运作良好;反之则需排查错误原因直至解决为止。 6. **克隆项目库地址替换HTTP链接形式为SSH风格表述方法** 当上述准备工作全部完成后,在实际执行clone动作时记得采用形如这样的URL模式表达目的资源定位信息: ```bash git clone ssh://git@github.com:{用户名}/{仓库名}.git 或者简化版本: git clone git@github.com:{用户名}/{仓库名}.git ``` 以上便是整个流程概述及其每一步骤的关键要点解析[^4]。 ```python import os os.system('ssh-keygen -t rsa -b 4096') ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值