git - 本地 GIT 服务器认证
问题描述
我只是设置了一个虚拟机(Ubuntu Server 20.04.2),我在它上面设置了 GIT 服务器,它正在工作。
当我运行它时,它是从dir的帐户(或基本上)git clone git@VM-IP:repos/repo
中克隆的。repo
repos
git
home dir
/home/git/repos/repo
在我运行克隆后,它要求输入密码。如果我使用git
's 的帐户密码,它会成功克隆。如果我使用passwordA
(也尝试过user@VM-IP..
)它失败了。我在其中创建.ssh/authorized_keys
了我输入的from/home/git
的执行结果。ssh-keygen -t rsa
user
passwordA
在浏览了这个问题一段时间后,我发现了几种 url 格式:
1) git@VM-IP:repo-path
2) git@VM-IP:user/repo-path
3) user@VM-IP:repo-path
如果我想使用user
's 的密码来克隆 repo,其中哪一个是正确的/home/git/repo
?我是否还遗漏了钥匙的某些内容,或者只是 URL 问题?
解决方案
有两件事阻碍了我。
git
有密码。如果这是您的情况,sudo passwd -d git
请从您的主要用户运行。- 文件中有一个无效的密钥,因此它没有读取它。为了成功进行身份验证,您需要
user
生成 rsa 对,ssh-keygen -t rsa
并且它应该在 中/home/user/.ssh
,并保留在那里。将内容从复制id_rsa.pub
到/home/git/.ssh/authorized_keys
(请注意,一行 = 一条记录!)。现在,如果您这样做sudo su user; git clone git@localhost:repos/repo
,它会询问您的密码user
并将克隆/home/git/repos/repo
到/home/user/repo
.
有了这两件事,现在一切正常。感谢您的回复!
推荐阅读
- python - 使用 pandas 查找列子集的最大差异
- maven - 如何从 pom 中生成具有选定依赖项的自定义 maven 原型?
- bitbucket - 如何修复 Bitbucket 警告“您似乎克隆了一个空存储库”?
- apache - 当有人访问 example.com/example 时,如何让我的网站加载 example.html
- python - 如何将自己模型的权重转移到同一网络但最后一层的分类数量不同?
- mysql - 如何使用 Java 中的休眠在 MySQL 数据库中创建联接表?
- html - 为什么条件渲染不适用于 vuejs 中的表单输入
- c++ - 如何创建 32 位红色纹理字节缓冲区
- soundcloud - 从 SoundCloud 检索所有用户的播放列表,限制为 50?
- sql - 具有 JOIN 和多个订单列的每组最大 N