首页 > 解决方案 > Visual Studio Code 和 Git 在我的 NAS 上阻止了我的 IP

问题描述

我不知道这是否是 Visual Studio Code 或 Ubuntu 或 Git 或 SSH 或 Synology 的问题。因此,我在这里提出这个问题,在我认为是万事通的网站上。

我有一台 Ubuntu 台式电脑和一台 Synology NAS(操作系统是 DSM)。我已经在 NAS 上安装了 Git 服务器。在 PC 上,我有一个使用 Git 的私人编程爱好项目。我在 NAS 上有一个裸仓库,它充当项目的 Git 远程。遥控器是用命令添加的git remote add origin ssh://gituser@192.168.XXX.XXX:/path/to/remote/repository/name.git。我在 PC 上创建了一个私钥-公钥,公钥已移至 NAS 到~/.ssh/authorized_keysgituser 的路径。

在 PC 上,如果我手动cd进入 Git-project 文件夹并使用git push,那么远程服务器会询问我的 Synology 密码,我输入它,按 ENTER 并且一切正常。我也可以将遥控器克隆到我电脑上的另一个位置,它可以工作。

但是,如果我启动 Visual Studio Code 并将项目作为文件夹打开,那么由于超过了允许的最大失败登录尝试次数,我很快就会被 Synology NAS 禁止 IP。

所以问题是:这里出了什么问题,我该如何让它工作?

我猜这是因为 VSCode 尝试自动从远程获取可能的更新,但由于 DSM 需要密码而未能这样做。我试图在 NAS 上添加线路PasswordAuthentication no/etc/ssh/sshd_config但这没有做任何事情。

标签: gitubuntuvisual-studio-codesshsynology

解决方案


首先,尝试使用 SSH URL,例如:

 ssh://gituser@192.168.XXX.XXX/path/to/remote/repository/name.git
                            ^^^
                            no ':' if you are using ssh://

其次,确保您的密钥没有密码(ssh-keygen -P "" ...

第三,如果它没有密码,那么它不应该要求远程用户密码:仔细检查 的内容~gituser/.ssh/authorized_keys,并验证公钥是否已完整复制,一行(而不是多行)

一旦命令行在不询问密码的情况下工作,您就可以使用 VSCode 对其进行测试。


推荐阅读