前提

之前在本地的windows工作电脑上安装了一个gitea供项目组成员使用。
期间为了在别的机器上执行scp拷贝windows工作机器上的文件,在windows工作电脑上离线安装过一个openssh。

冲突

发现无法pull/clone gitea上的仓库了,提示

connection reset by ip port 22
fatal: Could not read from remote repository.

在这里插入图片描述

观察到gitea的管理后台是可以正常打开的,并且修改git远程仓库的地址为http也是可以正常的连接。
因此问题出现在ssh连接上。

网上解决方案

  • 方法1:打开 window安全中心 - 防火墙与网络保护 - 高级设置 - 入站规则 - 新建规则 - 端口 - TCP/特定本地端口:22 - 允许连接 - 勾选规则 - 填入名称 然后保存
    结果:无效
  • 方法2:参考文章:https://www.jianshu.com/p/fe76f9867322
    需要修改ssh配置文件以修改端口号,目测还要配置gitea的ssh端口号。
    如果用这个方法,需要改动每个项目成员的电脑,不方便使用。
  • 方法3:使用如下指令修改仓库地址为http
git remote set-url origin http://仓库地址.git

同样需要改动每个人的电脑,暂时做为备用方案

端口冲突

  • 考虑到可能问题出现在端口冲突上
    使用netsta -ano查看监听22端口的程序,观察到PID为1844和3684的两个进程同时在监听22端口
    在这里插入图片描述
  • 查找对应的进程

在这里插入图片描述
在这里插入图片描述

这个PID为3684的进程就是之前安装的Win32-OpenSSH

  • 关闭进程sshd.exe,再次测试。就可以成功使用ssh格式的仓库地址,连接到gitea了。

解决方案1

  • WIN+R打开运行窗口,输入services.msc
  • 找到"OpenSSH Authentication Agent"和"OpenSSH SSH Server"禁用它们
  • 重启电脑

解决方案2(使用离线安装的方式安装openssh-server)

  • 在c:\windows\system32\下找到cmd.exe,以管理员身份运行它
  • 从CMD里进入到当初下载的Win32-OpenSSH目录
  • 执行
powershell.exe -ExecutionPolicy Bypass -File uninstall-sshd.ps1

在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐