Visual Studio Code和Git在我的NAS上阻止了我的IP

时间:2020-06-25 18:37:39

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

我不知道这是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上创建了一个私有-公钥,并且该公钥已移至gituser的路径~/.ssh/authorized_keys到NAS。

在PC上,如果我以手动方式cd进入Git-project文件夹并使用git push,则远程服务器会问我我的Synology密码,我输入该密码,然后按Enter,一切正常。我还可以将遥控器克隆到PC上的另一个位置,并且可以使用。

但是,如果我启动Visual Studio Code并以文件夹的形式打开该项目,则由于超出了失败登录尝试次数的最大允许数量,Synology NAS很快将IP禁止。

所以问题是:这里出了什么问题,我该如何解决?

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

2 个答案:

答案 0 :(得分: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的内容,并验证公钥已被完整复制,如 one 行(不是多行)

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

答案 1 :(得分:1)

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

在我的Synology NAS上

我决定将我的管理员帐户用于Git远程连接。

我在sudo chmod 700/volume1/homes/adminaccount/volume1/homes/adminaccount/.ssh/上使用了/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引导我朝正确的方向前进。