服务器的authorized_keys 包含数万个密钥,服务器如何知道哪个公钥匹配当前用户的私钥?
例如,通常用户名总是git,服务器如何知道当前用户的身份?
当我使用 ssh 提取代码时git pull,服务器如何知道git pull来自哪个用户?
然后服务器如何获取与用户关联的公钥?
因为公钥是注册到GitHub用户账号设置的
通常,这种存储库托管服务将~git/.ssh/authorized_keys使用SSH 强制命令填充它:
command="/path/to/script userID",\
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty \
ssh-rsa <yourPublicKey>
Run Code Online (Sandbox Code Playgroud)
代替:
ssh-rsa <yourPublicKey>
Run Code Online (Sandbox Code Playgroud)
它使用与您的公钥关联的用户 ID 调用脚本。
这就是 GitHubgit@github.com与您的帐户关联的方式。
在您的帐户中注册公钥会修改~git/.ssh/authorized_keys命令和用户 ID,而不仅仅是公钥。
- 当我使用 ssh 提取代码时
git pull,服务器如何知道git pull来自哪个用户?- 然后服务器如何获取与用户关联的公钥?
实际上,GitHub 在您和 GitHub 之间的 SSH 交易中获取您的公钥:然后它从其获取您的用户 ID ~git/.ssh/authorized_keys
最后,它会检查该用户是否有权从远程存储库克隆/获取/拉取(例如,这可能是私有的,在这种情况下,用户最好是该存储库的所有者或已声明的合作者)。
| 归档时间: |
|
| 查看次数: |
297 次 |
| 最近记录: |