Visual Studio 代码和 Git 在我的 NAS 上阻止了我的 IP
Visual Studio Code and Git get my IP blocked on my NAS
我不知道这是 Visual Studio 代码或 Ubuntu 或 Git 或 SSH 或 Synology 的问题。因此,我在这里问这个问题,在我认为是万事通的网站上。
我有一台 Ubuntu 台式电脑和一台 Synology NAS(操作系统是 DSM)。我在NAS上安装了Git服务器。在 PC 上,我有一个使用 Git 的私人编程爱好项目。我在 NAS 上有一个 bare-repo,它充当项目的 Git 远程。遥控器是使用命令 git remote add origin ssh://gituser@192.168.XXX.XXX:/path/to/remote/repository/name.git
添加的。我在 PC 上创建了一个私有 public 密钥,并且 public-密钥已移至 NAS 的 gituser 路径 ~/.ssh/authorized_keys
。
在 PC 上,如果我手动 cd
进入 Git-project 文件夹并使用 git push
,然后远程服务器询问我的 Synology 密码,我输入它,按 ENTER,一切正常。我还可以将遥控器克隆到我 PC 上的另一个位置,它可以正常工作。
但是,如果我启动 Visual Studio 代码并将项目作为文件夹打开,那么由于超过允许的最大失败登录尝试次数,我很快就会被 Synology NAS 禁止 IP。
所以问题是:这里出了什么问题,我该如何让它工作?
我猜这是因为 VSCode 尝试自动从远程获取可能的更新,但未能成功,因为 DSM 需要密码。我试图在 NAS 上将行 PasswordAuthentication no
添加到 /etc/ssh/sshd_config
,但这没有做任何事情。
首先,尝试使用 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
的内容,并验证 public 密钥是否已完整复制, 作为 一个 行(不是多行)
一旦命令行在不询问密码的情况下运行,那么您可以使用 VSCode 进行测试。
我确实设法使一切正常。我不确定是什么最终解决了这个问题,但我做了什么:
在我的 Synology NAS 上
我决定使用我的管理员帐户进行 Git 远程连接。
我在 /volume1/homes/adminaccount
、/volume1/homes/adminaccount/.ssh/
和 /volume1/homes/adminaccount/.ssh/authorized_keys
上使用了 sudo chmod 700
。
我编辑了 /etc/ssh/sshd_config
并取消了注释 #PubkeyAuthentication yes
和 #AuthorizedKeysFile .ssh/authorized_keys
在我的 Ubuntu 电脑上
我编辑了我的 ~/.ssh/config
,现在看起来像这样:
# My NAS
Host 192.168.XXX.XXX
Port 12345
Preferredauthentications publickey
IdentityFile ~/.ssh/myrsakey
结果
似乎一切正常。我可以开始 Visual Studio 代码,处理项目并推送到远程,而不会被禁止我的 IP。
谢谢@VonC 指引我正确的方向。
我不知道这是 Visual Studio 代码或 Ubuntu 或 Git 或 SSH 或 Synology 的问题。因此,我在这里问这个问题,在我认为是万事通的网站上。
我有一台 Ubuntu 台式电脑和一台 Synology NAS(操作系统是 DSM)。我在NAS上安装了Git服务器。在 PC 上,我有一个使用 Git 的私人编程爱好项目。我在 NAS 上有一个 bare-repo,它充当项目的 Git 远程。遥控器是使用命令 git remote add origin ssh://gituser@192.168.XXX.XXX:/path/to/remote/repository/name.git
添加的。我在 PC 上创建了一个私有 public 密钥,并且 public-密钥已移至 NAS 的 gituser 路径 ~/.ssh/authorized_keys
。
在 PC 上,如果我手动 cd
进入 Git-project 文件夹并使用 git push
,然后远程服务器询问我的 Synology 密码,我输入它,按 ENTER,一切正常。我还可以将遥控器克隆到我 PC 上的另一个位置,它可以正常工作。
但是,如果我启动 Visual Studio 代码并将项目作为文件夹打开,那么由于超过允许的最大失败登录尝试次数,我很快就会被 Synology NAS 禁止 IP。
所以问题是:这里出了什么问题,我该如何让它工作?
我猜这是因为 VSCode 尝试自动从远程获取可能的更新,但未能成功,因为 DSM 需要密码。我试图在 NAS 上将行 PasswordAuthentication no
添加到 /etc/ssh/sshd_config
,但这没有做任何事情。
首先,尝试使用 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
的内容,并验证 public 密钥是否已完整复制, 作为 一个 行(不是多行)
一旦命令行在不询问密码的情况下运行,那么您可以使用 VSCode 进行测试。
我确实设法使一切正常。我不确定是什么最终解决了这个问题,但我做了什么:
在我的 Synology NAS 上
我决定使用我的管理员帐户进行 Git 远程连接。
我在 /volume1/homes/adminaccount
、/volume1/homes/adminaccount/.ssh/
和 /volume1/homes/adminaccount/.ssh/authorized_keys
上使用了 sudo chmod 700
。
我编辑了 /etc/ssh/sshd_config
并取消了注释 #PubkeyAuthentication yes
和 #AuthorizedKeysFile .ssh/authorized_keys
在我的 Ubuntu 电脑上
我编辑了我的 ~/.ssh/config
,现在看起来像这样:
# My NAS
Host 192.168.XXX.XXX
Port 12345
Preferredauthentications publickey
IdentityFile ~/.ssh/myrsakey
结果
似乎一切正常。我可以开始 Visual Studio 代码,处理项目并推送到远程,而不会被禁止我的 IP。
谢谢@VonC 指引我正确的方向。