SSH 개인 키로 로그인 할 때 비밀번호없이 sudo


23

SSH 개인 키를 지원하도록 sudo 명령을 만들 수 있으므로 사용자가 개인 키를 사용하여 로그인 할 때 암호를 입력하지 않고도 sudo를 실행할 수 있습니다.

이를 통해 UNIX sysadmin 비밀번호를 암호화 된 콜드 스토리지에 저장할 수 있으며 사용자가 항상 보안 개인 SSH 키를 사용하여 서버에 로그인한다고 가정하면 액세스 할 필요가 없습니다.


askubuntu.com/a/135838 해당 사용자를 그룹에 넣으면 가능합니다!
Rob

작동하는지 확인 sudo visudo하기 위해 비밀번호를 변경해 보십시오NOPASSWD: ALL
공압

3
@AlanTuring 암호를 통해 식별 한 해당 그룹의 사용자에게도 적용됩니다.
Xyon

그것은을 @AlanTuring 효과적으로 서버의 보안을 줄일 것 - 내가 sudo는 모든, 특정 사용자가 원하는
미코 Ohtamaa

특정 사용자에게 권한을 부여 할 수 있습니다. 내 대답을 참조하십시오.
Isaac Rabinovitch

답변:


10

그렇게하는 옵션은 2014 년 4 월 이후로 존재했습니다 .

라는 패키지 pam_ssh_agent_auth(Centos 7에서 즉시 사용 가능한 YMMV)를 설치 한 다음 /etc/pam.d/sudo인증 방법으로 수락 하도록 구성 해야합니다. 마지막으로에 SSH_AUTH_SOCK지속되는 환경 변수 목록에 추가해야 할 수도 있습니다 sudo.

젠투 위키에는 이러한 단계에 대한 세부 정보가 있습니다.


1
사랑스러워, 리암 고마워 너무 오랫동안 내가 sysadmin에 없었습니다!
Mikko Ohtamaa

1

sudo 및 sshd에 대한 심각한 코드 변경 없이는 불가능합니다. Sudo는 로그인 방법에 대해 알지 못하며 ssh는 공개 키, 암호 또는 기타 메커니즘이 로그인에 사용되었는지 여부를 나타내는 내용을 다른 프로그램에 게시하지 않습니다.

다른 사람이 말했듯이 sudoers에서 NOPASSWD 옵션을 사용할 수 있습니다. 이는 개인 키와 함께 ssh를 사용할 때뿐만 아니라 지정된 사용자에게 항상 적용됩니다.

정말로 원한다면, sshd 로그를 확인하고 sudoers 파일을 잠 그거나 편집하여 사용자가 암호없이 sudo를 수행 할 수 있도록 suid 프로그램을 사용하여 수행 할 수있는 트릭이있을 수 있습니다.

내가 말한 것은 이것이 나쁜 생각이라고 생각합니다. 권한있는 명령에 암호를 요구하면 개인 키 SSH가 제공하지 않는 몇 가지 장점이 있습니다. 특히 인증 시간 초과가 발생할 수 있습니다 (ssh 세션의 경우 비밀번호가 아닌 다시 입력해야 함). 최소한의 비밀번호와 회전을 가질 수 있습니다 (ssh 키와 달리 서버 제어 외부에 비밀번호 문구가 있음).


11
"할 수 없다"는 답이 아닙니다. 특히 할 있을 때입니다.
Isaac Rabinovitch

새로운 정보를 포함하는 올바른 답변으로 변경.
Mikko Ohtamaa

1

몇 가지 답변 별도의 사용자 비밀번호없이 sudo를 가리 킵니다. 보안이 저하 될 수 있음을 알고 있어야합니다.

인증서로 이미 강력하게 인증 된 사용자의 경우 이론적으로 루트가 될 수있는 인증서를 소유하고 있기 때문에 문제가되지 않을 수 있습니다.

그러나 공격자에게 제한된 사용자 셸을 제공 할 취약점에 대해 생각하고이 사용자에게 sudoers 파일에 NOPASSWD가 설정되어 있으면 공격자는 시스템에 대한 자격 증명이 전혀없는 루트입니다.

sudo가 사용자의 암호를 요구하면 공격자는 자신의 권한을 root로 에스컬레이션 할 시간과 행운이 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.