是否可以设置特定的 SSH-RSA 密钥(通过另一个用户,即“ec2-user”),以便能够通过 sudo 进入 root 权限。
IE
您使用“Bob”(ec2-user)的密钥登录。目前用户“Bob”可以 sudo 进入 root。
“鲍勃”现在有两把钥匙。一种可以 sudo su 进入 root,一种不能。
答案1
是的。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 命令的正常系统身份验证
创建“特权”密钥对,该密钥对应有权访问
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
通过代理转发连接到服务器
ssh -K 服务器
根据需要运行 sudo
从我到目前为止的测试来看,这在 Fedora/RHEL/CentOS 系统上运行良好。