我不知道这是否是 Visual Studio Code、Ubuntu、Git、SSH 或 Synology 的问题。因此,我在这里问这个问题,在我认为是万事通的网站上。
我有一台 Ubuntu 台式电脑和一台 Synology NAS(操作系统是 DSM)。我已在 NAS 上安装了 Git 服务器。在 PC 上,我有一个使用 Git 的私有(private)编程爱好项目。我在 NAS 上有一个裸存储库,它充当该项目的 Git 远程。使用命令 git remote add origin ssh://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d5b2bca1a0a6b0a795e4ece7fbe4e3edfb8d8d8dfb8d8d8d" rel="noreferrer noopener nofollow">[email protected]</a>:/path/to/remote/repository/name.git
添加 Remote 。我已经在 PC 上创建了一个私钥-公钥,并且公钥已移动到 NAS 的路径 ~/.ssh/authorized_keys
gituser 的。
在PC上,如果我手动cd
我进入 Git-project 文件夹并使用 git push
,然后远程服务器询问我的 Synology 密码,我输入密码,按 ENTER 键,一切正常。我还可以将 Remote 克隆到电脑上的另一个位置,并且它可以工作。
但是,如果我启动 Visual Studio Code 并将项目作为文件夹打开,则由于超过允许的失败登录尝试次数上限,我很快就会被 Synology NAS 禁止 IP。
所以问题是:这里出了什么问题以及如何让它发挥作用?
我猜测发生这种情况是因为 VSCode 尝试自动从远程获取可能的更新,但由于 DSM 需要密码而未能成功。我尝试添加行 PasswordAuthentication no
至/etc/ssh/sshd_config
在 NAS 上,但这没有做任何事情。
最佳答案
我确实设法让一切正常运转。我不确定最终解决这个问题的是什么,但我做了什么:
在我的 Synology NAS 上
我决定使用我的管理员帐户进行 Git 远程连接。
我在 /volume1/homes/adminaccount
和 /volume1/homes/adminaccount/.ssh/
和 上使用了
。sudo chmod 700
>/volume1/homes/adminaccount/.ssh/authorized_keys
我编辑了 /etc/ssh/sshd_config
并取消注释 #PubkeyAuthentication yes
和 #AuthorizedKeysFile .ssh/authorized_keys
在我的 Ubuntu PC 上
我编辑了我的~/.ssh/config
,现在看起来像这样:
# My NAS
Host 192.168.XXX.XXX
Port 12345
Preferredauthentications publickey
IdentityFile ~/.ssh/myrsakey
结果
一切似乎都正常。我可以启动 Visual Studio Code、处理项目并推送到远程,而不会禁止我的 IP。
感谢@VonC 引导我走向正确的方向。
关于git - Visual Studio Code 和 Git 在我的 NAS 上阻止了我的 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62582160/