2013-07-18 76 views
0

在我自己的機器上,如果我啓動一個新的終端並執行某些需要超級用戶權限的操作,我必須輸入密碼。沒有密碼sudo通過ssh第二次

但是,如果我第二次登錄到遠程機器,這不是必需的,這怎麼可能?這是同一個shell嗎?

ssh remote_machine 
sudo su 
# enter password 
# drop out of the remote shell entirely 
ssh remote_machine # again 
sudo su 
# now continue without typing a password! 

這怎麼可能?

+0

在這裏不起作用。你確定它有效嗎?你使用哪個ssh/sudo/...版本? –

+0

是的,我很積極。請注意,我不是在談論SSH密碼(反正我使用密鑰)。我正在談論你的密碼以獲得sudo權利。 –

+1

是的,我意識到這一點(並且我爲我的測試使用了ssh-agent的ssh-keys) –

回答

1

從sudo的主頁(http://www.sudo.ws/sudoers.man.html):

sudoers中使用時間戳文件憑據緩存。一旦用戶通過了認證,時間戳就會更新,用戶可以在短時間內使用sudo而無需密碼(5分鐘,除非超時選項被覆蓋)。 默認情況下,sudoers使用基於tty的時間戳,這意味着每個用戶的登錄會話都有一個單獨的時間戳。 可以禁用tty_tickets選項以強制爲所有用戶的會話使用單個時間戳

這可能是怎麼回事。

+0

啊,那是有道理的。儘管'/ etc/sudoers'中沒有定義'Defaults!tty_tickets'。是否有其他方式可以禁用此選項? –

+0

奇怪的是,'sudo -ll'給出:'在這個主機上爲** me **匹配默認條目: env_reset' 並且沒有其他默認條目......並且在特定的不是'tty_tickets'中,這樣就可以解釋它。唯一尷尬的是爲什麼正確設置的默認設置很少。 –

+0

你檢查過''/ etc/sudoers.d''嗎? – hivert