Ssh
具有根訪問權限的特定使用者的 SSH-RSA(通過 AWS EC2)
是否可以設置一個特定的 SSH-RSA 密鑰(通過另一個使用者,即“ec2-user”),以便能夠 sudo 進入 root。
是的
- 您使用“Bob”(ec2-user)的密鑰登錄。目前使用者“Bob”可以 sudo 進入 root。
- “Bob”現在有兩個鍵。一個可以 sudo su 進入 root,一個不能。
是的。如果您的發行版提供,則可以使用
pam_ssh_agent_auth
包。它可以允許您基於 pam 模組執行 sudo,該模組檢查 ssh-agent 中 ssh 密鑰的擁有情況。短篇長篇
設置
pam_ssh_agent_auth
從包管理器安裝包- 修改
/etc/sudoers
,最好使用visudo
和添加行Defaults env_keep += "SSH_AUTH_SOCK"
- 編輯
/etc/pam.d/sudo
並添加(作為 之後的第二行#%PAM-1.0
)auth sufficient pam_ssh_agent_auth.so file=/etc/security/authorized_keys
並註釋掉一行
#auth include system-auth
禁止 sudo 命令的正常系統身份驗證 4. 創建應該有權訪問
sudo
命令和儲存公共部分的“特權”密鑰對,就像/etc/security/authorized_keys
在伺服器上一樣。ssh-keygen -t rsa -b 2048 cat ~/.ssh/id_rsa > /etc/security/authorized_keys
用法
- 在客戶端打開 ssh-agent 並添加上述密鑰:
eval $(ssh-agent) ssh-add ~/.ssh/id_rsa 2. 使用代理轉發連接到伺服器
ssh -K 伺服器 3. 根據需要執行 sudo
從我目前測試的結果來看,這在 Fedora/RHEL/CentOS 系統上執行良好。