git 切换远程地址 ssh登录错误ECDSA host key

本文详细介绍了如何使用Git命令来更改项目的远程仓库地址,包括查看、添加、删除远程仓库及修改远程仓库URL的方法,并提供了处理SSH key报错的具体步骤。

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

开发时我们可能会遇到要切换项目远程地址的情况,使用 git 工具进行切换的方式如下:

查看远程仓库:$ git remote -v

添加远程仓库:$ git remote add [name] [url]

删除远程仓库:$ git remote rm [name]

修改远程仓库名称: $ git rename [old name] [new name]

修改远程仓库:
$ git remote set-url --push [name] [newUrl]
$ git remote set-url --fetch [name] [newUrl]

例如:git remote add origin https://gitee.com/shay_cormac/vuex_todo.git

切换步骤:

  1. 使用 git remote -v 查看远程仓库地址
  2. 使用 git remote rm [name] 删除现在的远程地址
  3. 使用 git remote add [name] [url] 添加新的远程地址
  4. 使用 git remote -v 查看远程仓库地址

此时可以尝试拉取代码,尝试是否已经连接到远程地址

————————————————————————————————————————————

注意:

在切换地址后,有可能出现 ssh key 的报错

Offending ECDSA key in /c/Users/tiansi/.ssh/known_hosts:1

在这里插入图片描述
在/known_hosts中输入错误的ECDSA密钥,对应的行数是 第1行

我们根据路径找到 known_hosts 这个文件,就在 .ssh 秘钥相同的地方

打开 known_hosts 这个文件,找到第一行的 ip

在这里插入图片描述

使用命令 ssh-keygen -R [ip]

例如:ssh-keygen -R 175.6.23.194

$ ssh-keygen -R 175.6.23.194
# Host 175.6.23.194 found: line 1
/c/Users/tiansi/.ssh/known_hosts updated.
Original contents retained as /c/Users/tiansi/.ssh/known_hosts.old

输入命令后,将会提示找到对应信息并更新,原来的内容保留为 /.ssh/known_hosts.old

最后再拉取一次代码

$ git pull
The authenticity of host 'gitlab.fybdp.com (175.6.23.194)' can't be established.
ECDSA key fingerprint is SHA256:XhkznICEts6Q3AY+5UGqfY60mxZTLpnlduKr5nz+df4.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'gitlab.fybdp.com,175.6.23.194' (ECDSA) to the list o
f known hosts.

会提示是否确定建立连接
yes 建立连接

Warning 警告
警告:永久添加’175.6.23.194’ (ECDSA)到已知主机列表。

此时就完成了远程仓库的链接

————————————————————————————————————————————————

参考:

ssh登录错误ECDSA host key for ip has changed和Offending key for IP in /root/.ssh/known_hosts:1

ssh连接所生成的known_hosts出现的问题

Git 常用命令大全

### 解决 Git 推送时由于 SSH 公钥权限问题导致的 'Permission denied (publickey)' 错误 #### 1. **问题原因分析** 当用户在尝试通过 SSH 协议向 Gitee 远程仓库推送代码时,如果收到 `Permission denied (publickey)` 的错误提示,这通常是由于以下原因之一引起的: - 用户未正确生成或配置 SSH 密钥。 - 用户生成的 SSH 密钥未正确添加到 Gitee 账号的安全设置中。 - SSH 配置文件(`.ssh/config`)未正确定义主机与密钥之间的映射关系。 --- #### 2. **解决方案** ##### (1)检查并生成 SSH 密钥 确保本地已经生成了一对有效的 SSH 密钥。如果没有生成或者不确定是否有效,可以通过以下命令重新生成: ```bash ssh-keygen -t ed25519 -C "your_email@example.com" ``` 该命令会生成一个新的 Ed25519 类型的 SSH 密钥,并将其绑定到指定的电子邮件地址[^1]。如果希望使用传统的 RSA 算法,则可以改为: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 生成完成后,默认会在 `~/.ssh/` 目录下创建两个文件:私钥(如 `id_ed25519` 或 `id_rsa`)和公钥(如 `id_ed25519.pub` 或 `id_rsa.pub`)。 ##### (2)将公钥添加到 Gitee 帐号 打开生成的公钥文件,复制其内容: ```bash cat ~/.ssh/id_ed25519.pub ``` 随后登录Gitee 官网,进入个人中心 -> 设置 -> SSH 公钥管理页面,点击“新增 SSH 公钥”,并将复制的内容粘贴进去。务必填写一个描述性的标题以便后续识别[^2]。 ##### (3)配置 SSH Agent 加载私钥 为了使系统能够自动加载私钥而不必每次手动输入密码短语,需要启动 SSH Agent 并添加私钥: ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 ``` ##### (4)验证 SSH 连接 测试当前配置是否生效,运行以下命令: ```bash ssh -T git@gitee.com ``` 如果一切正常,将会看到类似如下消息: ``` Hi your_username! You've successfully authenticated... ``` 如果有任何异常,请仔细检查前面的操作步骤是否有遗漏之处。 ##### (5)处理自定义密钥路径的情况 如果用户在生成 SSH 密钥时指定了非标准名称或位置,则需要修改 SSH 配置文件以显式声明对应的关系。编辑 `~/.ssh/config` 文件,添加如下内容: ```plaintext Host gitee.com HostName gitee.com User git IdentityFile /path/to/your/private/key ``` 其中 `/path/to/your/private/key` 应替换为实际私钥文件的具体路径[^1]。 --- #### 3. **注意事项** - 如果在同一台设备上维护多个身份(例如分别针对 GitHub 和 Gitee),则应在 `.ssh/config` 中分别为它们分配独立的条目,避免冲突发生。 - Windows 用户需要注意默认目录结构差异,通常位于 `C:\Users\<YourUsername>\.ssh\` 下面操作[^3]。 --- ### 总结 通过对以上各环节逐一排查和完善,基本可以彻底解决因 SSH 公钥配置不当引发的 “Permission denied (publickey)” 报错现象。关键是保证从密钥生成、上传至云端服务端再到本机环境内的匹配设定均准确无误地实施到位。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值