Git ssh服务器如何知道与ssh私钥匹配的公钥?
服务器的授权密钥包含数以万计的密钥,服务器如何知道哪个公钥与当前用户的私钥匹配 例如,通常用户名总是Git ssh服务器如何知道与ssh私钥匹配的公钥?,git,ssh,ssh-keys,Git,Ssh,Ssh Keys,服务器的授权密钥包含数以万计的密钥,服务器如何知道哪个公钥与当前用户的私钥匹配 例如,通常用户名总是git,服务器如何知道当前用户的身份 详细问题: 当我使用ssh通过git-pull提取代码时,服务器如何知道git-pull来自哪个用户 然后,服务器如何获取与用户关联的公钥 因为公钥已注册到 通常,这种存储库托管服务将使用来填充其~git/.ssh/authorized_密钥: command="/path/to/script userID",\ no-port
git
,服务器如何知道当前用户的身份
详细问题:
- 当我使用ssh通过
提取代码时,服务器如何知道git-pull
来自哪个用户git-pull
- 然后,服务器如何获取与用户关联的公钥
~git/.ssh/authorized_密钥
:
command="/path/to/script userID",\
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty \
ssh-rsa <yourPublicKey>
command=“/path/to/script userID”\
无端口转发、无X11转发、无代理转发、无pty\
ssh-rsa
而不是:
ssh-rsa <yourPublicKey>
ssh-rsa
它使用与公钥关联的用户ID调用脚本
这就是GitHub如何关联git@github.com
使用您的帐户。在帐户中注册公钥会使用命令和用户ID修改
~git/.ssh/authorized_keys
,而不仅仅是公钥
- 当我使用ssh通过
提取代码时,服务器如何知道git-pull
来自哪个用户git-pull
- 然后,服务器如何获取与用户关联的公钥
~git/.SSH/authorized_keys
最后,它检查该用户是否有权从远程存储库克隆/获取/拉取(例如,远程存储库可能是私有的,在这种情况下,用户最好是该存储库上的所有者或声明的协作者)。因为公钥已注册到 通常,这种存储库托管服务将使用来填充其
~git/.ssh/authorized_密钥
:
command="/path/to/script userID",\
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty \
ssh-rsa <yourPublicKey>
command=“/path/to/script userID”\
无端口转发、无X11转发、无代理转发、无pty\
ssh-rsa
而不是:
ssh-rsa <yourPublicKey>
ssh-rsa
它使用与公钥关联的用户ID调用脚本
这就是GitHub如何关联git@github.com
使用您的帐户。在帐户中注册公钥会使用命令和用户ID修改
~git/.ssh/authorized_keys
,而不仅仅是公钥
- 当我使用ssh通过
提取代码时,服务器如何知道git-pull
来自哪个用户git-pull
- 然后,服务器如何获取与用户关联的公钥
~git/.SSH/authorized_keys
最后,它检查该用户是否有权从远程存储库克隆/获取/拉取(例如,远程存储库可能是私有的,在这种情况下,用户最好是该存储库的所有者或声明的协作者)。简单的回答是,它没有。不过,这个答案并没有多大帮助 假设您是一个ssh服务器,刚刚收到一个用户名(此时总是
git
)和一个公钥
现在来看一下~git/.ssh/authorized_keys
,这是一个很大的文件,文件中充满了由四个空格分隔的字段组成的行:
- 选择权
- 键型
- base64编码密钥
- 评论
授权密钥
文件,检查:这一行是否具有相同的公钥
当然,它还需要进一步验证:仅仅拥有公钥并不意味着你就是你所声称的那样。但这就足够了。在
authorized_keys
文件中找到正确的(或“a”)行后,如果您通过了其余的身份验证过程,sshd现在可以使用这些选项来确定您是谁。简单的回答是,它没有通过。不过,这个答案并没有多大帮助
假设您是一个ssh服务器,刚刚收到一个用户名(此时总是git
)和一个公钥
现在来看一下~git/.ssh/authorized_keys
,这是一个很大的文件,文件中充满了由四个空格分隔的字段组成的行:
- 选择权
- 键型
- base64编码密钥
- 评论
授权密钥
文件,检查:这一行是否具有相同的公钥
当然,它必须进行身份验证