我尝试使用 ssh 密钥控制运行 git 服务器,但它不起作用。对于我个人的 git 使用,我设置 git 服务器并单独使用它没有问题。现在,要使用 ssh 密钥操作具有权限控制的 git 服务器(以便某些允许的人可以访问 git 服务器),我会这样做。
- 在机器 A (at
my.server.ip.addr
) 中,我/home1/repos_test/nnn.git
使用 account创建了一个存储库prjgit
。prjgit
在sudo
组中,我将nnn.git
目录的所有者和组更改为prjgit
. - 我在机器 B 上创建了另一个帐户,并生成了 ssh 密钥
ssh-keygen -C "[email protected]"
并将内容粘贴到机器 A的id_rsa.pub
帐户文件中。prjgit
.ssh/authorized_keys
但是当我尝试 git pull bygit pull ssh://[email protected]/home1/repos_test/nnn.git
时,它会要求我在此提示下输入密码,[email protected]'s password:
而我可以输入的唯一方法 git pull 是输入prjgit
“帐户”密码。这不是我想要的。我想让 mike 不输入密码,或者用mike
自己的密码输入。我究竟做错了什么?
添加
根据@muru 的建议,我尝试与之建立联系ssh -v ...
,最后一部分看起来像这样。公钥方法似乎不起作用,它进入密码方法。
debug1: Next authentication method: publickey
debug1: Offering public key: /home/mthompson/.ssh/id_rsa RSA SHA256:6x3bHdxx1uTZSIRupFE3Lh+9b0Y4epRb7Lbx+3veT4w
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/mthompson/.ssh/id_dsa
debug1: Trying private key: /home/mthompson/.ssh/id_ecdsa
debug1: Trying private key: /home/mthompson/.ssh/id_ecdsa_sk
debug1: Trying private key: /home/mthompson/.ssh/id_ed25519
debug1: Trying private key: /home/mthompson/.ssh/id_ed25519_sk
debug1: Trying private key: /home/mthompson/.ssh/id_xmss
debug1: Next authentication method: password
[email protected]'s password:
我将 id_rsa.pub 粘贴到服务器的 authorized_keys 文件中。但是为什么不成功呢?
.ssh
SSH 对目录、authorized_keys
文件和密钥有安全要求。.ssh
意味着authorized_keys
该目录中的其他文件将被服务器忽略。