Git中遇到的SSH错误

今天在git提交远程仓库的时候,出现下面这错误信息

E:\Workspaces\IdeaProjects\permission>git push -u origin master
The authenticity of host 'gitee.com (120.55.226.24)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': y
Please type 'yes' or 'no': yes
Warning: Permanently added 'gitee.com' (ECDSA) to the list of known hosts.
Authentication failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

百度后,有这两种解释:


一、少了一个known_hosts文件,本来密钥文件应该是三个,现在是两个,便报了这样的错误,此时选择yes回车之后,便可,同时生成了缺少了的known_hosts文件


可yes 执行后,仍没有作用


二、这个原因可能是本地主机的key发生了变化,因此每次SSH链接都会有提示,只需要在交互下输入yes即可。

当然如果长久的想解决问题,可以采用以下方法:


1、使用ssh连接远程主机时加上“-o StrictHostKeyChecking=no”的选项,去掉对主机的验证检查。

ssh  -o StrictHostKeyChecking=no  192.168.xxx.xxx

注:192.168.xxx.xxx 为本地ip地址:windows ipconfig查看,linux ifconfig查看

2、当然你也可以直接改配置文件信息,这样彻底去掉验证。

修改/etc/ssh/ssh_config文件(或$HOME/.ssh/config)中的配置,添加如下两行配置:


StrictHostKeyChecking no
UserKnownHostsFile /dev/null

注:不过采用第二种方法,容易造成潜在的危险。可以参考Stackoverflow上的题:
ssh: The authenticity of host 'hostname' can't be established




### 配置Git仓库的SSH密钥 为了安全地访问远程Git仓库,通常会配置SSH密钥来替代密码认证。以下是关于如何为Git仓库配置SSH密钥的具体说明。 #### 1. 检查现有SSH密钥 在开始之前,先确认本地是否存在现有的SSH密钥。可以通过以下命令检查: ```bash ls ~/.ssh ``` 如果存在`id_rsa`和`id_rsa.pub`文件,则表示已有私钥和公钥[^1]。如果没有这些文件,则需要生成新的SSH密钥对。 --- #### 2. 生成新的SSH密钥 如果尚未创建过SSH密钥,可以运行以下命令生成一个新的SSH密钥对: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 此命令会在默认路径下生成一对SSH密钥(私钥`id_rsa`和公钥`id_rsa.pub`),其中`-C`参数用于指定关联的电子邮件地址[^2]。 --- #### 3. 查看并复制公钥 生成完成后,需将公钥内容复制到剪贴板以便后续添加至Git仓库服务提供商。执行如下命令查看公钥内容: ```bash cat ~/.ssh/id_rsa.pub ``` 或者直接将其复制到剪贴板(适用于macOS/Linux): ```bash pbcopy < ~/.ssh/id_rsa.pub # macOS xclip -sel clip < ~/.ssh/id_rsa.pub # Linux with xclip installed ``` 对于Windows用户,可以在`.pub`文件所在的目录打开Git Bash终端,并输入相同命令完成操作[^3]。 --- #### 4. 添加公钥至Git仓库服务商 登录到对应的Git托管平台(如GitHub、GitLab或Bitbucket)。找到账户设置中的“SSH Keys”部分,点击“Add SSH Key”,并将前面复制的内容粘贴进去保存。 --- #### 5. 测试连接 验证新配置是否生效,可尝试通过SSH连接目标服务器。例如针对GitHub,运行以下命令测试连通性: ```bash ssh -T git@github.com ``` 如果一切正常,应该收到一条欢迎消息;反之则可能遇到权限拒绝等问题,此时可根据错误提示排查原因。 --- #### 常见问题处理 当出现类似 `Permission denied (publickey)` 的报错时,可能是以下几个方面的原因所致: - **未正确上传公钥**:重新核对所填入的信息是否有误; - **代理冲突**:某些网络环境下可能存在SSH流量被拦截的情况,考虑调整环境变量或切换网络条件后再试; - **身份文件不匹配**:确保当前使用的私钥与远端绑定的一致,必要情况下可通过编辑~/.ssh/config文件明确指明对应关系。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值