sudo를 통해 루트 액세스 권한을 얻을 수 있도록 특정 SSH-RSA 키(다른 사용자, 즉 "ec2-user"를 통해)를 설정할 수 있습니까?
즉
"Bob"(ec2-user) 키를 사용하여 로그인합니다. 현재 사용자 "Bob"은 sudo를 사용하여 루트에 들어갈 수 있습니다.
이제 "Bob"에는 두 개의 키가 있습니다. 하나는 sudo su를 사용하여 루트에 들어갈 수 있고 다른 하나는 그럴 수 없습니다.
답변1
예. pam_ssh_agent_auth
배포판에서 제공하는 경우 패키지를 사용할 수 있습니다. ssh-agent에서 ssh 키를 사용할 수 있는지 확인하는 pam 모듈을 기반으로 sudo를 수행할 수 있습니다.
단편소설
설정
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를 열고 위의 키를 추가하세요.
평가 $(ssh-agent) ssh-add ~/.ssh/id_rsa
프록시 전달을 통해 서버에 연결
SSH -K 서버
필요에 따라 sudo를 실행하세요.
지금까지 테스트한 결과 Fedora/RHEL/CentOS 시스템에서는 제대로 작동했습니다.