我有 3 个公共 ssh 密钥,对应于在我的服务器上工作的 3 个用户。我需要为我的服务器上的用户使用这 3 个公钥git
,以便他们可以访问服务器上的 git 存储库。
我运行了以下命令,试图让git
用户可以通过 ssh 进行访问:
cat /home/user_one/.ssh/authorized_keys >> /var/git/.ssh/authorized_keys
cat /home/user_two/.ssh/authorized_keys >> /var/git/.ssh/authorized_keys
cat /home/user_three/.ssh/authorized_keys >> /var/git/.ssh/authorized_keys
但是,[email protected]: Permission denied (publickey)
当我们尝试以 git 用户身份进行 ssh 登录或尝试推送到 git 存储库时,会出现错误。
笔记:/var/git
是用户的主目录git
。服务器运行在 Debian 11 上。
我们可以单独连接到每个用户,为什么我们不能连接到用户git
?
答案1
git 机器上的 sshd 日志文件可能会告诉您在authorized_keys 文件的权限上发现了什么问题。在将用户的授权密钥文件附加到您所描述的之后,我有一个 3 点清单:
- 确保 git 用户的主目录不可被世界或组写入。这通常意味着主目录的 755、751 或 711 权限。
- 确保 git 用户的
.ssh
目录被严格锁定。通常是700个权限。 - 确保 git 用户的
authorized_keys
文件不能被除该用户之外的任何人读取或写入。通常有 600 个权限,由用户和用户的主要组拥有。