SSH不使用公共密钥进行身份验证(Windows)

时间:2020-06-20 12:50:01

标签: git ssh

我有一个VPS(Windows Server 2016),并在Windows上使用OpenSSH在其上运行了SSH服务器。我将在此VPS上运行git服务器,因此我在google中搜索了一些教程并找到了this。 配置服务器端设置的教程还可以,我创建了一个裸露的git存储库。我会使用SSH公钥使用自己的计算机连接到git服务器,但它需要我输入密码!我试图从我自己的PC(没有密码短语)中将我的公共生成的密钥保存在服务器的/.ssh/authorized_keys文件中,但是没有用。当我使用此git clone user@IP_ADDRESS:<repo dir>命令从服务器克隆现有存储库时,它总是告诉我应该输入密码:

Cloning into 'central'...
user@IP_ADDRESS's password:

我试图通过仅按Enter并尝试输入root来跳过密码提示,但仍然无济于事。 尽管我使用ssh -Tv git@IP_ADDRESS一步一步查看正在发生的事情,但是我意识到publickey身份验证已被跳过,并且password auth方法的处理过程不断进行。

2 个答案:

答案 0 :(得分:1)

git @ IP_ADDRESS的意思是您与“ git”用户而不是“ root”用户连接,它是否存在于服务器中? 〜/ .ssh / authorized_keys必须添加到用户的家中。

/home/git/.ssh/authorized_keys

或者就您而言(编辑(我在Linux中正在考虑:)):

C:\Users\git\.ssh\authorized_keys

我希望对您有帮助

答案 1 :(得分:0)

实际上,问题出在服务器上当前用户组的特权上。在我的情况下,用户具有管理员特权,因此SSH将在%PROGRAMDATA%/ssh/administrator_authorized_keys中搜索公用密钥。对于Windows中的普通用户帐户,SSH会自动将/users/{username}/.ssh/authorized_keys文件复制到我正在复制计算机的公共SSH密钥的位置。所以我将我的公钥移到了administrator_authorized_keys文件中,现在一切正常。 感谢@EdKenbers的答复。