gitolite不使用sshd服务

gitolite不使用sshd服务,ssh,gitolite,Ssh,Gitolite,我正试着让gitolite去上班,已经被困了好几个小时了。我的局域网上的CentOS 6服务器 我终于得到了ssh-vvvgitolite来处理这个配置文件 Host gitolite User gitolite HostName srv Port 2002 IdentityFile ~/.ssh/srv_gitolite_openssh 但是只有在服务器上进行调试时,它才起作用 sudo service sshd stop sudo /usr/sbin/sshd -Dd 当sshd

我正试着让gitolite去上班,已经被困了好几个小时了。我的局域网上的CentOS 6服务器

我终于得到了
ssh-vvvgitolite
来处理这个配置文件

Host gitolite
 User gitolite
 HostName srv
 Port 2002
 IdentityFile ~/.ssh/srv_gitolite_openssh
但是只有在服务器上进行调试时,它才起作用

sudo service sshd stop
sudo /usr/sbin/sshd -Dd
当sshd作为服务运行时,连接失败

为什么当我手动运行sshd时,它可以工作,而不是将sshd作为服务运行?它似乎使用相同的
sshd\u config
文件,因为它使用相同的端口号。此外,我的用户名
gitolite
位于配置的
AllowUsers
部分

成功案例如下所示:

更新:以下是服务器端日志

作为服务失败:

成功:

失败案例的亮点如下。在这两种情况下,“key\u from\u blob”不应该是相同的吗?我已尝试删除授权密钥的命令部分,但它作为服务仍然失败

debug3: mm_answer_keyallowed entering
debug3: mm_answer_keyallowed: key_from_blob: 0x7f72b6e93350
debug1: temporarily_use_uid: 505/505 (e=0/0)
debug1: trying public key file /var/lib/gitolite/.ssh/authorized_keys
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 505/505 (e=0/0)
debug1: trying public key file /var/lib/gitolite/.ssh/authorized_keys2
debug1: restore_uid: 0/0
Failed publickey for gitolite from 192.168.1.201 port 57488 ssh2
debug3: mm_answer_keyallowed: key 0x7f72b6e93350 is not allowed
debug3: mm_request_send entering: type 22
成功案例的亮点:

debug3: mm_answer_keyallowed entering
debug3: mm_answer_keyallowed: key_from_blob: 0x7f4d79de18b0
debug1: temporarily_use_uid: 505/505 (e=0/0)
debug1: trying public key file /var/lib/gitolite/.ssh/authorized_keys
debug1: fd 4 clearing O_NONBLOCK
debug3: secure_filename: checking '/var/lib/gitolite/.ssh'
debug3: secure_filename: checking '/var/lib/gitolite'
debug3: secure_filename: terminating check at '/var/lib/gitolite'
debug2: key_type_from_name: unknown key type 'command="/var/lib/gitolite/bin/gitolite-shell'
debug3: key_read: missing keytype
debug2: user_key_allowed: check options: 'command="/var/lib/gitolite/bin/gitolite-shell gitolite",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBrEOo5blAUXXSwXdxUxTOhBDHcjw2OzxGg6Vu4drzmUYL5uPxjWLGzuzcNkrYmlVqXr5UBqeSbkZh9W/0lLMcmiv5FLdIQ+J2m5lqHsEJLS8FImfJxfo2/LvboFy0NFOxF8GaHxeIWFp+YmwAlogO9gi1zgXK99DGc15W/edYwCw==
'
debug1: matching key found: file /var/lib/gitolite/.ssh/authorized_keys, line 2
Found matching RSA key: ae:92:1d:a7:7b:ec:75:7a:19:ac:28:75:b0:cc:27:8f
debug1: restore_uid: 0/0
debug3: mm_answer_keyallowed: key 0x7f4d79de18b0 is allowed

我怀疑钥匙在这两种情况下都能用

但是作为服务运行
sshd
与从当前会话运行它不同:请参阅“”

该服务取消所有继承的环境变量,只保留
PATH
TERM

~gitolite/.ssh/authorized_keys
中注册,并且必须缺少环境变量(当sshd作为服务运行时),这会阻止命令的执行


“”也有类似的情况:

SELinux可能是原因。
.ssh
目录可能被错误标记

查看
/var/log/audit/audit.log
。它应该被标记为
ssh\u home\t

ls-laZ检查。如果需要,运行restorecon-r-vv/root/.ssh


我怀疑钥匙在这两种情况下都能用

但是作为服务运行
sshd
与从当前会话运行它不同:请参阅“”

该服务取消所有继承的环境变量,只保留
PATH
TERM

~gitolite/.ssh/authorized_keys
中注册,并且必须缺少环境变量(当sshd作为服务运行时),这会阻止命令的执行


“”也有类似的情况:

SELinux可能是原因。
.ssh
目录可能被错误标记

查看
/var/log/audit/audit.log
。它应该被标记为
ssh\u home\t

ls-laZ检查。如果需要,运行restorecon-r-vv/root/.ssh


谢谢你给我的提示,告诉我可能会有什么不同。有没有什么日志可以让我查看以获得更多提示?我想我有一个非常标准的init.d/sshd(我没有改变任何东西),所以我不明白为什么它不应该工作。@Matt它不会工作,因为环境变量(env-I部分)不同。至于日志,它们通常位于/var/log/syslog或其他
/var/log/*
中。执行
find/var-mmin-60-print
查看最近哪些文件发生了更改。我不确定强制命令是否是问题所在,似乎密钥在服务中不被接受。查看我的更新。@Matt你能检查一下你的
/var/log/audit/audit.log
?请看我编辑过的答案。谢谢你的提示,可能会有什么不同。有没有什么日志可以让我查看以获得更多提示?我想我有一个非常标准的init.d/sshd(我没有改变任何东西),所以我不明白为什么它不应该工作。@Matt它不会工作,因为环境变量(env-I部分)不同。至于日志,它们通常位于/var/log/syslog或其他
/var/log/*
中。执行
find/var-mmin-60-print
查看最近哪些文件发生了更改。我不确定强制命令是否是问题所在,似乎密钥在服务中不被接受。查看我的更新。@Matt你能检查一下你的
/var/log/audit/audit.log
?参见我编辑的答案。SELinux是这样的,
restorecon-r-vv/var/lib/gitolite/.ssh
SELinux是这样的,
restorecon-r-vv/var/lib/gitolite/.ssh