在Ubuntu 12.04计算机上,我按照本指南安装了git-server:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-private-git-server-on-a-vps
即使将pub键添加到authorized_keys文件,没有私钥的任何人都可以克隆并将新提交推送到服务器。什么可能导致这个问题?
答案 0 :(得分:0)
您可以使用小脚本并定义GIT_SSH来获取ssh连接的详细跟踪,以便在git连接到您的服务器时使用此脚本。
#!/bin/sh
exec ssh -v $@
和export GIT_SSH=$HOME/ssh-debug
或您称之为此文件的任何内容。 -v
标志会打开来自ssh的详细消息,您可以看到哪个阶段允许连接。在这里对我的服务器测试这个我可以看到它尝试加载各种密钥然后要求密码来解锁密钥文件。如果我给出了一个错误的密码,它会继续尝试在服务器上登录密码。可能您允许在git
帐户上使用空密码登录密码,然后授权任何人。但是,我认为详细记录ssh连接应该揭示问题。
以上脚本也适用于Windows客户端。如果您使用cmd shell,只需使用set GIT_SSH=c:\pathwithoutspace\ssh-debug
。
答案 1 :(得分:0)
您的SSH服务器可能允许使用用户名和密码登录。它可以被禁用like this,即通过服务器上 sshd_config 中的PasswordAuthentication no
。
更新:许多人认为有类似“Git管理”的内容。通常没有这样的事情。 Git管理主要由SSH deamon配置组成,无论何时使用SSH协议,Git都会使用SSH服务器所具有的任何配置。
答案 2 :(得分:0)
您正在为所有用户禁用带密码的SSH。如果他正在使用标准的git SSH格式,它只是与git用户SSH,除非由于某种原因他在推/拉时键入git用户的密码,否则这对任何其他用户都禁用SSH可能正在使用密码。