我有一个VPS(Windows Server 2016),并在Windows上使用OpenSSH在其上运行了SSH服务器。我会在此VPS上运行git服务器,因此我在google中搜索了一些教程并找到了它。配置服务器端设置的教程还可以,我创建了一个裸露的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方法。
实际上,问题出在服务器上当前用户组的特权上。就我而言,该用户具有管理员特权,因此SSH会在中搜索%PROGRAMDATA%/ssh/administrator_authorized_keys
公用密钥。对于Windows中的普通用户帐户,SSH会自动将/users/{username}/.ssh/authorized_keys
文件复制到我在其中复制计算机公用SSH密钥的位置。所以我将我的公钥移到了administrator_authorized_keys
文件上,现在一切正常。感谢@EdKenbers的回复。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句