【问题标题】:Visual Studio Code and Git get my IP blocked on my NASVisual Studio Code 和 Git 在我的 NAS 上阻止了我的 IP
【发布时间】:2020-06-27 05:00:46
【问题描述】:

我不知道这是否是 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 到 gituser 的路径 ~/.ssh/authorized_keys

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

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

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

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

【问题讨论】:

    标签: git ubuntu visual-studio-code ssh synology


    【解决方案1】:

    首先,尝试使用 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的内容,并验证公钥已被完整复制,为一个 em> 行(不是多行)

    一旦命令行无需询问密码即可运行,那么您可以使用 VSCode 对其进行测试。

    【讨论】:

    • @WaitoPiggu ssh gituser@192.168.XXX.XXX 工作吗?只要基本的 SSH 连接不起作用,就没有 git 命令。
    • 我从 PC 上位于 ~/.ssh/myrsakey 的私人 rsa 密钥中删除了密码。我检查并 myrsakey.pub 已正确复制到 /volume1/homes/gituser/.ssh/authorized:_keys 一行。我仍然被要求输入密码。
    • @WaitoPiggu 那是因为没有使用私钥。您使用 ~/.ssh/config 的解决方案确实有效。
    • 我还意识到我可以通过编辑 Visual Studio Code 的设置并禁用自动获取来解决这个问题。不过,这仍然需要我输入我的 NAS 管理员帐户的密码。
    【解决方案2】:

    我确实设法使一切正常。我不确定是什么最终解决了这个问题,但我做了什么:

    在我的 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 Code,处理项目并推送到远程,而不会被我的 IP 禁止。

    感谢@VonC 为我指引正确的方向。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      • 2022-10-21
      • 2020-07-31
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 2019-03-03
      相关资源
      最近更新 更多