ssh 和 git 设置

ssh 和 git 设置

我正在尝试在我的本地网络上设置一个私人 git 服务器,但我一生都无法弄清楚我做错了什么。我似乎无法通过 git 用户的私钥获得 ssh 身份验证。

我已经ssh-keygen在客户端上运行来创建 rsa pub/私钥。我已经~/.ssh/authorized_keys在服务器上创建了该文件。我已将文件的内容复制id_rsa.pubauthorized_keys服务器上的文件中,方法是scp将文件传输到服务器,然后再传输cat id_rsa.pub > ~/.ssh/authorized_keys到服务器上,以确保没有复制错误。我已经重新启动了 ssh 守护进程。

在客户端上,~/.ssh文件夹的权限为700,~/.ssh/id_rsa文件的权限为600。在服务器上,~/.ssh文件夹的权限为700,~/.ssh/authorized_keys文件的权限为600。

我的服务器的 ssh 配置/etc/ssh/sshd_config有以下未注释的行

Include /etc/ssh/sshd_config.d/*.conf
KbdInteractiveAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp  /usr/lib/openssh/sftp-server
PasswordAuthentication yes
Match User git
        PasswordAuthentication no
        PubkeyAuthentication yes

/etc/ssh/sshd_config.d/文件夹是空的。服务器正在运行Ubuntu 22.04.1 LTS。服务器的ssh版本是OpenSSH_8.9p1 Ubuntu-3ubuntu0.1, OpenSSL 3.0.2 15 Mar 2022

在尝试时,我受到以下欢迎ssh [email protected]
Permission denied (publickey).

我缺少什么?我看过指南。我已确保我准确地复制了密钥。老实说,我很困惑,因为我之前已经在已经设置了 ssh 的服务器上将公钥插入到文件中authorized_keys,并且它有效。如果我将 sshd 配置设置为允许,PasswordAuthentication那么我可以使用我设置的密码以 git 用户身份登录。我不明白为什么公共私钥身份验证不起作用。

输出ssh [email protected] -vvv
https://pastebin.com/raw/nJwskYhU

答案1

有一个错误,/var/log/auth.log其中指出:
Authentication refused: bad ownership or modes for directory <home directory>

我所做的是将 git 用户的主目录移动到一个新位置,并且该文件夹的默认权限和所有权与标准权限和所有权不同。我认为这就是问题所在。将主目录移回修复问题的目录。感谢肯斯特的评论。我没想到要在服务器端查找日志。

相关内容