Ssh

具有根訪問權限的特定使用者的 SSH-RSA(通過 AWS EC2)

  • September 9, 2015

是否可以設置一個特定的 SSH-RSA 密鑰(通過另一個使用者,即“ec2-user”),以便能夠 sudo 進入 root。

是的

  1. 您使用“Bob”(ec2-user)的密鑰登錄。目前使用者“Bob”可以 sudo 進入 root。
  2. “Bob”現在有兩個鍵。一個可以 sudo su 進入 root,一個不能。

是的。如果您的發行版提供,則可以使用pam_ssh_agent_auth包。它可以允許您基於 pam 模組執行 sudo,該模組檢查 ssh-agent 中 ssh 密鑰的擁有情況。

短篇長篇

設置

  1. pam_ssh_agent_auth從包管理器安裝包
  2. 修改/etc/sudoers,最好使用visudo和添加行
Defaults    env_keep += "SSH_AUTH_SOCK"
  1. 編輯/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

用法

  1. 在客戶端打開 ssh-agent 並添加上述密鑰:

eval $(ssh-agent) ssh-add ~/.ssh/id_rsa 2. 使用代理轉發連接到伺服器

ssh -K 伺服器 3. 根據需要執行 sudo

從我目前測試的結果來看,這在 Fedora/RHEL/CentOS 系統上執行良好。

引用自:https://unix.stackexchange.com/questions/228640