2013-03-02 77 views

回答

2

GitHub正在利用OpenSSH的功能。請參見sshd(8)手冊頁中的「AUTHORIZED_KEYS FILE FORMAT」部分。它說,在authorized_keys文件中的每一行由以下部分組成:

<options> <keytype> <base64-encoded key> <comment> 

其中一個支持的選項是command

  • command="command"指定每當這個關鍵是command執行用於認證。用戶提供的命令(如果有)將被忽略。

因此,GitHub上可以做他們的~git/.ssh/authorized_keys文件這樣的東西:

command="foo -u user1" <user1's key stuff here> 
command="foo -u user2" <user2's key stuff here> 

現在,每當user1日誌中,服務器運行foo -u user1。因此,foo腳本知道user1已登錄,而不是某個其他用戶。