it-swarm-ko.tech

ssh는 ssh-copy-id에도 불구하고 비밀번호를 묻습니다.

원격 쉘에서 sshfs 마운트뿐만 아니라 원격 서버에서도 공개 키 인증을 사용하고 있습니다. 내 sshfs 디렉토리를 강제로 삭제 한 후 ssh가 비밀번호를 묻는 메시지를 표시하기 시작했습니다. 로컬 컴퓨터에 대한 언급에서 원격 .ssh/authorized_keys를 제거하려고 시도했으며 로컬 컴퓨터를 원격 컴퓨터에 대한 참조에서 정리했습니다. 그런 다음 ssh-copy-id를 반복하여 암호를 입력하라는 메시지가 표시되고 정상적으로 돌아 왔습니다. 그러나 원격 서버에 ssh 할 때 여전히 암호를 묻는 메시지가 나타납니다. 문제가 무엇인지에 대해 조금 혼란 스럽습니다. 제안이 있습니까?

29
Aliud Alius

sshd는 $ HOME, $ HOME/.ssh (두 디렉토리 모두) 및 $ HOME/.ssh/authorized_keys에 대한 권한에 대해 이상하게됩니다.

내 리눅스 박스 중 하나가 $ HOME 디렉토리에서 drwxrwxrwx 권한으로 끝났습니다. 아치 리눅스 박스는 $ HOME 디렉토리의 다른 그룹에 대한 'w'권한을 제거 할 때까지 공개 키를 사용하여 절대 로그인하지 않습니다.

$ HOME 및 $ HOME/.ssh /에 그룹 및 기타에 대해 더 제한적인 권한을 부여하십시오. 그것이 sshd가 그 일을하지 못하게하는지 확인하십시오.

32
Bruce Ediger

다음과 같은 권한이 필요합니다.

  • .ssh 폴더 : 700 (drwx------)
  • 공개 키 : 644 (-rw-r--r--)
  • 개인 키 : 600 (-rw-------)
8
Sagar Naik

최근 에이 문제가 발생했습니다.

$HOME 디렉토리의 권한을 수정하여 수정되었습니다. 그러나 chmod g-w ~/ 만 실행해도 문제가 해결되지 않았습니다. chmod g-w ~/ 외에도 $HOME를 실행하여 chmod o-wx ~/ 디렉토리에서 others의 권한을 수정해야했습니다.

함께:

chmod g-w ~/
chmod o-wx ~/

o-x가 필요한지 확신 할 수 없으므로 예방 조치로 간단히 실행했습니다.

5
izzy.artistic

~/.ssh 폴더의 권한을 변경하면 이 게시물은 Super User SE 에 따라 문제가 해결되었습니다.

1
Dogukan

이 문제에 대한 인터넷 검색시 첫 번째 검색 결과에이 질문이 표시되므로 솔루션을 추가하겠습니다.

제 경우에는 권한과 관련이 없습니다. ssh 명령을 실행할 때 어떤 이유로 든 (내가 빠른 해결책을 찾았 기 때문에 실제로 어떤 이유인지 직접 알 필요가 없습니다) 프로그램은 올바른 ID 파일을 찾지 못했습니다. 한 가지 해결책은 SSH 프로그램이 사용하려고 시도한 SSH 키를 원격 서버에 수동으로 추가하는 것이 었습니다. 명령에 -v를 추가하여 명령을 실행할 때 SSH 프로그램이 수행하는 작업을 관찰 할 수 있습니다.

ssh -v [email protected] 

그런 다음 SSH를 사용하여 SSH 프로그램이 ID 파일/개인 키를 찾으려는 공개 키를 로컬 컴퓨터에서 가져옵니다 (예 : Mac).

cat ~/.ssh/id_rsa.pub

... 그리고 다음 위치에서 remote의 authorized_keys 파일에 추가하십시오.

~/.ssh/authorized_keys

또 다른 경우에는 더 나은 해결책은 로컬 ssh 구성 파일에 사용자 정의 호스트를 추가하는 것이 었습니다. 내 Mac에서는 다음과 같습니다.

/Users/my-user-name/.ssh/config

예를 들어 다음과 같이 추가 할 수 있습니다.

Host mynewserver
        HostName some.IP.number.or.domain
        Port 20000 #if custom port is used and not the default 22
        User the_root
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_for_my_new_server

그런 다음 다음을 실행하면됩니다.

ssh mynewserver

... 그리고 Voilà

0
Schurik

병렬 로그인에서도 문제가 발생합니까 (예 : 열린 ssh 세션이있는 동안 sshfs를 마운트하려고 시도하는 경우)? 그렇지 않다면 홈 디렉토리가 암호화되어 있다고 생각하십니까? 이 경우 $HOME/.ssh/authorized_keys는 처음 로그인 한 후 (비밀번호를 사용하여) 원격 시스템에서만 사용할 수있게되었습니다.

설명과 필요한 해결 방법은 https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Troubleshooting 를 확인하십시오.

0
fheub

필자의 경우 원격 서버에서 다음 파일을 찾으십시오.

/etc/ssh/sshd_config

다음 속성을 no로 설정했습니다.

PubkeyAuthentication no

해시로 주석 처리 :

#PubkeyAuthentication no

트릭을 반으로했고 나머지는 ssh 서비스를 다시 시작하는 것이 었습니다.

/etc/init.d/sshd restart

출처 : ssh-copy-id 이후에도 여전히 비밀번호를 제공해야합니다

0
shabby

재부팅 후 공개 키가 살아남지 못한 이유는 서버 홈 디렉토리가 암호화 되었기 때문입니다. (서버를 설치하는 동안이 작업을 수행합니다)

0
dinbo

나는 이것을 의견으로 게시 할 것이지만 아마도 너무 길 것입니다. ssh-copy-id/.ssh 폴더 내의 $HOME 위치에서 공개 키를 보내려고한다는 것을 추가하고 싶었습니다.

공개 키를 사용하여 루트로 ssh를 시도 (보안 관련 주석 저장)하려는 경우 ssh-copy-id$HOME 변수가 /root 이외의 다른 (예 : 일반 사용자의 홈 디렉토리로 설정) 설정되어 있으므로 루트의 공개 키가 원격 시스템에 설치되어 있지 않기 때문에 루트 사용자에게 프롬프트가 표시됩니다.

다음 단일 라이너를 사용하여 정확한 공개 키를 지정할 수 있습니다.

pub="$(cat /root/.ssh/id_rsa.pub)"; ssh [email protected] "echo $pub >> .ssh/authorized_keys; chmod 700 .ssh; chmod 600 .ssh/authorized_keys"

나는이 시나리오를 야생에서 몇 번 (오늘 아침 포함) 만났으며 누군가가 같은 상황에 처한 경우를 대비하여 2 센트를 넣으려고한다고 생각했습니다.

0
rubynorails

언급 한 다른 기고자들과 마찬가지로, 이것은 아마도 권한 문제 일 것입니다.

이를 진단하는 가장 좋은 방법은 디버그 옵션을 켜서 (일반적으로 "-d"옵션) 원격 서버에서 SSH 데몬을 다시 시작하는 것입니다. OpenSSH 데몬 메시지는 매우 명시 적입니다. 예를 들어 다음과 같은 메시지가 표시됩니다.

Authentication refused: bad ownership or modes for directory /some/path
0
gerard lapeche

또 다른 가능한 문제는 서버가 키 알고리즘을 지원하지 않는다는 것입니다. 제 경우에는 sshd 로그 (/var/log/auth.log 나의 경우에는):

userauth_pubkey: unsupported public key algorithm: ssh-ed25519 [preauth]

이 경우 sshd 구성 (최신 sshd 버전으로 업데이트해야 할 수 있음)에서 해당 알고리즘에 대한 지원을 활성화하거나 키를로 전환해야합니다. 연결하려는 sshd에서 지원하는 알고리즘.

0
Florian Brucker