사용자가 ssh 키로 로그인 할 수 있지만 비밀번호로 로그인하지 못하게하려면 어떻게해야합니까?


17

사용자를 만들고 싶습니다. 비밀번호가 없습니다. 에서처럼 비밀번호로 로그인 할 수 없습니다. root를 사용하여 authorized_keys에 키를 추가하고 싶습니다. 이것은 자동 백업 시스템을위한 것입니다.

답변:


26

shadow-utils에 기반한 리눅스 배포판 에서 적어도 Fedora에서 사용하는 passwd -d것은 명백 하지 않습니다. 를 사용하여 비밀번호를 제거하면 누구나 비밀번호를 제공하지 않고 해당 사용자 (콘솔 또는 그래픽)에 로그인 할 수 있습니다.passwd -d

비밀번호 인증으로 로그인을 차단하려면을 실행하십시오 . 그러면 계정이 잠기므로 루트 사용자 만 사용할 수 있습니다. 잠금은 암호화 된 비밀번호를 유효하지 않은 문자열로 렌더링하여 수행됩니다 (암호화 된 문자열 앞에!를 붙임).passwd -l username

로컬 또는 원격으로 로그인을 시도하면 "비밀번호가 틀립니다" . 공개 키 로그인은 계속 작동합니다. 그런 다음로 계정을 잠금 해제 할 수 있습니다 .passwd -u username

계정을 삭제하지 않고 완전히 잠 그려면 편집 /etc/passwd하고 설정 /sbin/nologin하거나 /bin/false마지막 필드에서 확인하십시오. 결과는 "현재이 계정을 사용할 수 없습니다." 모든 로그인 시도.

passwd (1) 매뉴얼 페이지를 참조하십시오.


@guido : RVS에 답을 알리지 않습니다. 당신은 그것에 대한 그의 답변에 의견을 추가해야 할 것입니다. 독자는 자신의 답변을 읽기 전에 질문에 직접 답할 수있는 답변을 작성해야합니다. 이것을 지적 해 냈습니다! 대부분의 Linux 배포판 (Linux 섀도 유틸리티를 사용하는 배포판)에 적용됩니다.
Gilles 'SO- 악의를 멈춰라'

@Gilles : 죄송합니다. stackexchange를 처음 사용합니다. 사용자가 암호없는 계정을 설정하도록 제안하는 것과 같기 때문에이 정보를 조금만 지적했습니다 .
guido

@guido : 걱정하지 마십시오. 경고를보다 효과적으로 만드는 방법을 설명하고있었습니다. 실제로 답변이 위험 할 수있는 극단적 인 경우 경고 나 수정 사항을 추가하여 수정 사항을 제안하는 것이 좋습니다 (사이트에서 이러한 상황이 너무 자주 발생하지 않기를 바랍니다).
Gilles 'SO- 악마 그만해'

@guido : 사실, 데비안 스퀴즈 (lenny 또는 etch에 대해 모른다)는 작동합니다. 루트 이외의 사람은 로그인 할 수 없으며 권한 부여 키는 허용하지만 암호는 적지 않으며 암호는 허용하지 않습니다. 나는 당신이 '암호를 삭제'할 수 있고 그것이 이런 식으로 작동 할 것이라고 생각했다. 그러나 그것은 내가 원하는 것과 정확하게이 대답이하는 일을하고 유일한 대답이므로 그냥 받아 들였습니다. 이 답변은 더 이해가 잘되며 다른 디스 토스에 기꺼이 내기 때문에 누구나 데비안과 달리 bc 비밀번호를 사용하여 로그인 할 수 있습니다. 어쨌든 좋은 대답입니다.

1
@ acidzombie24, @mattdn : 데비안이 pam을 사용하는 경우 pam.d / password-auth 에서 nullok 를 제거 할 수 있습니다 (그렇다고 생각하지만 데비안 전문가는 아닙니다). 그러나 passwd (1) 맨 페이지 cleary는 -d 인수가 암호가없는 계정을 작성 하는 것이라고 명시하고 있으므로 여기서 질문이 매우 일반적이므로 배포판 특정 추측은 부차적입니다.
guido

2

비밀번호 기반 인증을 승인하지 않고 키 / 비밀번호 인증을 승인하도록 SSH 디먼에 특정하지 않습니까?

변경 사항 찾기 sshd_config .

세트

PasswordAuthentication No
PreferredAuthentications publickey,hostbased,keyboard-interactive
Protocol 2,1

man ssh_config 에서 추가 구성 매개 변수를 찾으십시오.


0

사용자의 비밀번호를 설정하지 마십시오. 이미 비밀번호가있는 경우 다음을 사용하여 비밀번호를 제거하십시오.passwd -l <username> .

그러나 authorized_keys를 사용하거나 일부 권한있는 계정에서 su 또는 sudo를 통해이 사용자로 여전히 로그인 할 수 있습니다.


1
guido 에서 지적한 것처럼 passwd -d비밀번호를 입력하지 않아도 계정을 비밀번호없이 만듭니다. 비밀번호를 입력하지 않아도 로그인 할 수 있습니다. passwd -l계정을 잠그는 데 사용 합니다 (입력 할 수없는 암호를 제공한다고 생각하십시오).
Gilles 'SO- 악마 그만해'

게시물이 위험하기 때문에 게시물에 경고를 추가했습니다. 답을 고칠 지, 답을 지우는 지 (Guido 's가 충분하다고 생각 될 경우) 경고를 반박할지 결정해야합니다.
Gilles 'SO- 악마 그만해'

왜 사람들은 작동하지 않는 대답을 받아들입니까?
수학

@mathepic : 데비안에서 작동합니다. 정확히 내가 요청한 방식

당신은 확실하다 권한이없는 사용자가 할 수없는 su사용자에게?
mattdm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.