我已经完成了克隆位于git@xx.xx.xxx.xxx:project.git
的存储库的任务。我有VPS IP地址,VPS密码和公钥myrepo.pub
所以我可以访问存储库。这就是我所拥有的所有信息,并且我已经被告知了。
我已经下载了GitHub for windows并将公钥myrepo.pub
放入.ssh
文件夹。我在.ssh
文件夹中创建了一个配置文件,如下所示。
host git@xx.xx.xxx.xx
HostName git@xx.xxx.xxx.xx
IdentityFile ~/.ssh/myrepo.pub
User root
现在,当我打开GIT并尝试克隆git clone git@xx.xxx.xxx.xx:project.git
时,我会被要求输入密码。我被告知:
“如果一切设置正确 - 当服务器使用您的公钥授权您时,不需要授权(密码)。此公钥是您的标记。”
我该如何解决这个问题?这是我的配置文件吗?这是我第一次使用GIT,非常感谢任何帮助。
答案 0 :(得分:3)
您实际上需要在本地.ssh
文件夹中使用私有键。 public 键进入服务器的.ssh/authorized_keys
。我们的想法是,为了授权您自己绝对需要您的私钥,但您授权到的人/服务器/程序只需要您的公钥。
此外,您的配置有点令人困惑。你可能想要这样的东西:
Host myserver
User git
HostName xx.xxx.xxx.xx
PubkeyAuthentication yes
PreferredAuthentications publickey
IdentityFile ~/.ssh/myrepo
然后,您可以使用git clone myserver:project.git <target_directory>
克隆存储库。如果相对路径或绝对路径未提供<target_directory>
, git 通常会尝试克隆到./project/
。如果文件夹已存在且不为空,则可能会出错。
是否需要输入密码取决于您是否设置了私钥。
关于配置的一些注意事项:
git@
部分是服务器上的用户,您需要在此输入。man ssh_config
。