SSH 및 공개 키와 사용자 B를 통해 연결할 수 없습니다(사용자 A는 가능).

SSH 및 공개 키와 사용자 B를 통해 연결할 수 없습니다(사용자 A는 가능).

해결되었습니다.user_B나를 속인 것은 s 홈 디렉토리 의 그룹 쓰기 가능 비트였습니다 .

이것에 대한 아이디어가 부족합니다. 모든 힌트를 높이 평가하겠습니다.

다음 설정을 고려해보세요.

  • Ubuntu를 실행하는 서버 S, users boldewynuser_Auser_B
  • 두 대의 노트북 AB, 각각 로컬 사용자 boldewyn( id_rsa로그인 키 가 있음 S)와 두 번째 키 id_rsa_A/ 가 있습니다 id_rsa_B. 모든 키는 에 저장됩니다 /home/boldewyn/.ssh. 둘 다 우분투를 실행 중입니다.
  • user_Auser_B비밀번호가 비어 있으면 공개 S키와 SSH를 통해서만 로그인이 가능해야 합니다.

    +--------+            +-------------------+            +--------+
    | laptop |            |       server      |            | laptop |
    |   A    |            |         S         |            |   B    |
    |        |            |                   |            |        |
    +--------+    SSH     +-------------------+    SSH     +--------+
    |id_rsa_A|------------|< user_A   user_B >|------------|id_rsa_B|
    +--------+            +-------------------+            +--------+
    |id_rsa  |------------|<    boldewyn     >|------------|id_rsa  |
    +--------+            +-------------------+            +--------+
    

작동하는 것:

  • 랩톱에서 다음으로 로그인하십시오 boldewyn( id_rsaS:/home/boldewyn/.ssh/authorized_keys

  • A노트북에서 사용자로 로그인합니다 user_A( id_rsa_AS:/home/user_A/.ssh/authorized_keys: 사용 ssh -i id_rsa_A user_A@S) .

내 문제:노트북에서는 B정확히 동일한 설정이 실패합니다 user_B. S어떤 이유로든 키가 허용되지 않고 비밀번호 프롬프트가 나타나기 때문에 에 로그인할 수 없습니다 ( user_B비밀번호가 없으므로 옵션이 없습니다).

제가 확인한 내용:

  • 노트북 B:

    • 모든 콘텐츠 의 권리 ~/.ssh및 모든 내용을 확인했습니다.
    • id_rsa_Bs 및 : 의 공개 부분을 넣습니다 (키가 손상되지 않았습니다) boldewyn..authorized_keysssh -i id_rsa_B boldewyn@S
    • ssh -vvv: 글쎄요, 별로 도움이 되지 않습니다. 한 지점에서 지금은 메서드를 건너뛴다는 점을 알려줍니다 publickey. 이유가 제공되지 않았습니다.
  • 서버에서 S:

    • 세 번 확인된 user_Bs .authorized_keys파일
    • /home/*/.ssh및 해당 내용 전체 의 권리를 확인했습니다 (특히 user_A및 비교 user_B).
    • $HOME(를 통해 sudo -u user_B -i) 설정되어 있는지 확인했습니다 .
    • 모든 사용자가 /etc/ssh/sshd_configs AllowUsers(및 AllowGroups) 에 있는지 확인했습니다.

기타 사항:

user_A와 사이에서 내가 생각해 낼 수 있는 유일한 차이점은 user_B후자를 사용하여 만들었다는 것입니다 adduser -M(홈 디렉토리를 만들지 마십시오. 이전에 이미 존재했습니다). 그러나 나는 /home/user_B관련된 모든 어린이가 user_B및 그의 기본 그룹 에 의해 소유되어 있는지 세 번 확인했습니다 .

답변1

세 번 확인하셨나요?/home/user_B(및 /home/user_B/.ssh) 에도 /home/user_B/.ssh/authorized_keys적절한 권한이 있었습니다.사용자 외에는 쓸 수 없음, 즉 모드 755 이상이 제한적입니까?

답변2

내 생각에는 해당 키를 생성한 방식과 관련이 있을 수 있습니다. 나는 다시 시도할 것이다. 키는 ssh-keygen 기능으로 생성됩니다. 아마도 한 세트의 키가 생성될 때 생성 프로세스에서 암호가 사용되었을 것입니다. 암호를 입력하라는 메시지가 표시되면 Enter 키를 누르기만 하면 됩니다. 해당 키의 pub 부분을 우분투에 복사합니다. .ssh/authorized_keys 파일에서 문제가 되는 항목을 삭제했는지 확인하세요. 두 번째 생각: pub 파일을 cat하는 경우 pub 파일을authorized_keys 파일에 복사할 때 >(replace_) 대신 >>(추가)를 사용해야 합니다. (cat id_rsa.pub >> .ssh/authorized_keys)

나는 조금 놀랐다. 나는 직장에서는 Solaris와 Cygwin을 사용하고 집에서는 Centos, Slackware, Debian 및 Ubuntu로 구성된 Linux Lan을 사용하여 방법을 사용했습니다. 개인 키가 공개 키와 일치하지 않을 가능성이 있습니까? 키를 생성하면 쌍을 얻게 되며, 공개 키는 전통적으로 대상 시스템의 홈 디렉터리 아래에 있는 .ssh/authorized 키 파일에 복사됩니다. 키를 다시 생성하는 경우 새 .pub 파일을 복사해야 합니다. 새 개인 키는 이전 공개 키와 쌍을 이루지 않습니다. 홈 디렉터리에 .authorized_keys 폴더가 있는 것 같습니다. 나는 그것을 시도한 적이 없습니다. 일반적인 배치는 /home/user_name/.ssh/authorized_keys 폴더에 있다고 생각합니다. 저는 약 6 이상의 Solaris 버전, Freebsd, Linux의 다양한 반복 및 버전을 사용하는 데 문제가 발생한 적이 없습니다. 행운을 빌어요

앨런

관련 정보