대체 비밀번호를 사용하여 "sudo"를 통한 인증을 허용하는 방법은 무엇입니까?

대체 비밀번호를 사용하여 "sudo"를 통한 인증을 허용하는 방법은 무엇입니까?

우리 회사는 Ubuntu 시스템에 대해 매우 긴 비밀번호를 제공합니다. 이 비밀번호는 반복인증 시 입력하기가 더 까다롭습니다 sudo.

sudo내 사용자 계정과 연결된 비밀번호가 아닌 다른 비밀번호로 인증 할 수 있나요 ? 아니면 sudo비밀번호 없는 인증을 완전히 활성화할 수 있나요?

답변1

sudo관리하는 키에 대한 지식과 인증을 연결할 수 있습니다.ssh-agent. 이는 다음을 통해 달성할 수 있습니다.폴리아크릴아미드그리고pam_ssh_agent_auth기준 치수. 특히 인증을 위해 별도의 키 쌍을 생성할 수 있습니다 sudo. 비밀번호는 개인 키를 암호화하는 데 사용되는 비밀번호입니다.

pam_ssh_agent_auth모듈을 구성하려면 다음을 추가하십시오./etc/pam.d/sudo 앞으로기타 auth지침 include:

auth       sufficient pam_ssh_agent_auth.so file=/etc/security/authorized_keys

또한 다음을 추가하여 sudo환경 변수가 삭제되지 않도록 알려야 합니다.SSH_AUTH_SOCK/etc/sudoersvisudo

Defaults    env_keep += "SSH_AUTH_SOCK"

이제 인증 토큰 역할을 하려는 키의 공개 부분을 추가하세요 /etc/security/authorized_keys. -t스위치를 다음에 추가 할 수도 있습니다 .ssh-addssh-agent기본 동작을 모방하기 위해 적절하게 짧은 수명을 가진 키를 추가하거나 sudo(마지막 입력 이후 일정 시간이 지나면 비밀번호 확인 메시지 표시) -c키를 사용하여 확인을 인증할 때마다 스위치를 사용하여 비밀번호를 트리거할 수도 있습니다.

Ubuntu의 기본값은 다음과 같습니다.그놈 키체인제가 아는 한 SSH 키 관리를 위해키 시간 초과 설정은 현재 허용되지 않습니다.. 다음을 추가하면 GNOME Keyring에서 SSH 키 관리를 완전히 비활성화할 수 있습니다 ~/.config/autostart/gnome-keyring-ssh.desktop.

[Desktop Entry]
Type=Application
Name=SSH Key Agent
Comment=GNOME Keyring: SSH Agent
Exec=/usr/bin/gnome-keyring-daemon --start --components=ssh
OnlyShowIn=GNOME;Unity;MATE;
X-GNOME-Autostart-Phase=Initialization
X-GNOME-AutoRestart=false
X-GNOME-Autostart-Notify=true
X-GNOME-Autostart-enabled=false
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-keyring
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=3.10.1
NoDisplay=true
X-Ubuntu-Gettext-Domain=gnome-keyring

/etc/xdg/autostart/gnome-keyring-ssh.desktop주요 차이점은 다음과 같습니다 .

X-GNOME-Autostart-enabled=false

답변2

Ubuntu 시스템에서 루트 계정을 활성화할 수 있는 경우 sudo사용자 비밀번호를 호출하는 대신 루트 비밀번호를 묻는 메시지를 표시하도록 다음을 구성할 수 있습니다 /etc/sudoers( 사용 visudo).

Defaults rootpw

우분투는 기본적으로 루트 계정을 비활성화합니다비밀번호를 잠그세요. 활성화하려면 새 비밀번호를 설정하세요 root.

$ sudo passwd root

루트 비밀번호를 사용하여 인증을 활성화하려는 경우에도 sudo모든 내용을 지우거나 주석 처리하여 로컬 콘솔 장치에서 루트 로그인을 비활성화할 수 있습니다./etc/securetty. 그러나 빈 /etc/securetty 파일은 그렇지 않습니다.아니요OpenSSH 또는 기타 영향을 받지 않는 수단을 사용하여 루트 사용자가 원격으로 로그인하는 것을 방지합니다.pam_securetty.so(예를 들어 su,,,,,,). OpenSSH는 의 스탠자를 통한 루트 로그인을 방지하도록 특별히 구성할 수 있지만, 이렇게 하기로 결정한 경우 다음 사항을 알아야 합니다.sudosshscpsftpPermitRootLogin no/etc/ssh/sshd_config다른 영향이는 귀하의 상황과 관련이 있을 수 있습니다.

답변3

다음과 같이 sudo의 동작을 변경하여 비밀번호 입력을 완화해 보세요.

이것은에서 가져온 것입니다ChromiumOS 팁 및 요령 페이지: Sudo를 더욱 관대하게 만들기

cd /tmp
cat > ./sudo_editor <<EOF
#!/bin/sh
echo Defaults \!tty_tickets > \$1          # Entering your password in one shell affects all shells 
echo Defaults timestamp_timeout=180 >> \$1 # Time between re-requesting your password, in minutes
EOF
chmod +x ./sudo_editor 
sudo EDITOR=./sudo_editor visudo -f /etc/sudoers.d/relax_requirements

어떤 작업이 수행되었는지 모른다면 tty_tickets is now false이는 모든 tty에서 인증할 필요가 없음을 의미합니다. Timestamp_timeout is set to every 3 hours, 즉 3시간마다 비밀번호를 입력한다는 의미입니다. 비밀번호를 입력하는 시간과 3시간 제한 사이에는 sudo some command제한 시간이 만료될 때까지 비밀번호를 입력하라는 메시지가 표시되지 않습니다.

relax_requirement이제 sudo를 제어하는 ​​데 사용할 수 있습니다. 사용 가능한 옵션은 다음과 같습니다.Sudor 매뉴얼. 굵은 부분을 찾아보세요Sudor 옵션. 제가 설명한 것 외에도 많은 옵션이 있습니다. 이를 수행하려면 PAM 등을 수정할 필요가 없으며 PAM이 있든 없든 모든 시스템에서 작동합니다.

답변4

/etc/sudoers선택한 편집기를 사용하여 파일을 편집하거나 특정 사용자가 암호 없이 명령을 사용할 visudo수 있도록 행을 실행하고 추가할 수 있습니다 . sudo그것은 다음과 같습니다:

user ALL = NOPASSWD : ALL

관련 정보