我问自己,那些 git 托管工具/站点如何知道哪个用户登录了。
我的意思是,您通过 SSH 登录git@github.com/...
,这意味着您以用户身份登录git
唯一能安全识别您为真实用户的信息是您的公钥。但是他们是如何计算出你的登录公钥的呢?
一种方法是查看此问题中显示的日志文件:
我可以找出用于访问帐户的 ssh 密钥吗? https://unix.stackexchange.com/questions/15575/can-i-find-out-which-ssh-key-was-used-to-access-an-account
但这意味着您必须将日志级别设置为 VERBOSE,但是我安装了 Gitlab,并且日志级别为 INFO,并且在任何地方都没有覆盖 sshd_config。
简而言之:如果您通过 SSH 在 Github 或 gitlab 登录,它会告诉您:
ssh git@github.com PTY 分配请求在通道 0 上失败
嗨用户名!您已成功通过身份验证,但 GitHub 不提供 shell 访问权限。
与 github.com 的连接已关闭。
但是当我以 git 登录时,github 怎么知道我是 USERNAME?
编辑:
我知道我的密钥和我的帐户之间存在映射,但是 gitolite(或(例如)gitolite-shell 必须以某种方式知道我的公钥,这个密钥是如何传递到 toe gitolite shell 的?
它必须以某种方式找出此会话中使用的 ssh-public-key,这是我的问题的关键,它如何知道用于登录的 ssh-key