Ssh

無論如何都會知道 ssh 進入伺服器的原始帳戶的使用者名嗎?

  • December 23, 2012

我最初 git 複製了一個 repo,當我推送我的工作時,在 post-receive 掛鉤中,我想檢索進行推送的原始帳戶的使用者名。

我知道$SSH_CONNECTION$SSH_CLIENT給了我原始 IP,但我找不到獲取原始帳戶使用者名的方法。

資訊:使用公鑰/無密碼方法建立 ssh 連接

我假設每個人都在 git 伺服器上共享同一個使用者,並且他們每個人都有自己的登錄密鑰。

如果是這種情況,那麼您可以輕鬆辨識使用者用於登錄 git 伺服器的**公鑰,而不是辨識****遠端使用者。**為此,您應該允許在您的伺服器中,然後您可以通過在每個公鑰前面加上. 例如,git serve 使用者的文件可能如下所示:PermitUserEnvironment``sshd_config``environment="GIT_USER=username"``authorized_keys

environment="GIT_USER=bob" ssh-rsa AAA.....abc== bob@somehost
environment="GIT_USER=sam" ssh-rsa AAA.....def== sam@otherhost

您可以自由選擇環境變數名稱和使用者標識符。

如果您使用的是gitolite,那麼$GL_USER這就是您要尋找的。

如果您使用的是gitosis,您應該考慮改用gitolite

引用自:https://serverfault.com/questions/460248