ssh-copy-id가 성공했지만 여전히 비밀번호를 묻는 메시지가 표시됩니다.

ssh-copy-id가 성공했지만 여전히 비밀번호를 묻는 메시지가 표시됩니다.
  1. 나는 ssh-copy-id root@c199전에 이것으로 성공했습니다.
  2. ssh root@c199비밀번호 프롬프트 없이 로그인할 수 있습니다
  3. 다른 사용자가 자동으로 로그인하고 싶습니다 ufo (원격 시스템에 해당 사용자가 있습니다).
  4. ssh-copy-id ufo@c199 비밀번호를 물어보는데,

    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    ufo@c199's password:
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh 'ufo@c199'"
    and check to make sure that only the key(s) you wanted were added.
    
  5. 하지만 로그인하면 ssh ufo@c199여전히 비밀번호를 묻는 메시지가 표시됩니다.


SSH를 통해 msys2(Windows)의 원격 centos에 로그인을 시도했는데 다음과 같은 줄이 많이 있음을 발견했습니다.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs7RTfvn83Rxdmvgfh+F4kUlM5FzIUb9rRHaqq11xKIW1gztn/+G4tr+OWl4o6GTW2Z361hIi
ugy8DPtMATN66nTTDUYO0sSvw2BrQfDY4iIENdLpkkHO8KQVGpQE+8tDkaZfD6EQLVtl0uvDE3D77tfcnBLODXgZPQsUSlssMi+pxDbSVjjKgrP
hM1G/L9OTrEHKWDhF+ZBgY1RuLl7ZEdoATbhJaK4FFb9hNn/2CSibVfLts8HJGYQXIQRX/RBzaDZp47sKZvq302ewkkVorNY+c9mmoze6mi8Ip2
zEQOMi6S9zM/yRiD0XZrbmzYfNkoXA03WTmMR/DynVvX2nV /c/Users/xxxx/.ssh/id_rsa

/home/ufo/.ssh/authorized_keys센 토스 에서는

.ssh 사용자의 폴더 권한을 700으로, Authorized_keys 파일을 644로 변경했습니다.

동일한 SSH 키, ssh root@c199자동 로그인이지만 ssh ufo@c199비밀번호를 묻는 메시지가 표시됩니다.


고쳐 쓰다

ssh ufo@c199 -vv산출:

....
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:zmCg5vHhBAMd5P4ei82+KsVg072KXbC63C44P0w3zbU
debug1: Host 'c199' is known and matches the ECDSA host key.
debug1: Found key in /c/Users/xxxxx/.ssh/known_hosts:35
debug2: set_newkeys: mode 1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug2: key: /c/Users/xxxxx/.ssh/id_rsa (0x60006bec0), agent
debug2: key: /c/Users/xxxxx/.ssh/id_dsa (0x0)
debug2: key: /c/Users/xxxxx/.ssh/id_ecdsa (0x0)
debug2: key: /c/Users/xxxxx/.ssh/id_ed25519 (0x0)
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /c/Users/xxxxx/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /c/Users/xxxxx/.ssh/id_dsa
debug1: Trying private key: /c/Users/xxxxx/.ssh/id_ecdsa
debug1: Trying private key: /c/Users/xxxxx/.ssh/id_ed25519
debug2: we did not send a packet, disable method
debug1: Next authentication method: password

답변1

감사해요https://unix.stackexchange.com/a/55481/106419, SSH를 디버깅하는 방법을 알려줍니다.

SSH 디버깅을 활성화하고 무슨 일이 일어나는지 확인하세요

systemctl stop sshd
/usr/sbin/sshd -d -p 22

내가 찾은 것 :

Authentication refused: bad ownership or modes for directory /home/ufo

모든 사람들은 다음과 같이 말합니다.

  • /home/ufo/.ssh소유권 수정 700
  • /home/ufo/.ssh/authorized_keys소유권 수정 600/644

하지만 sshd는 여전히 사용자의 홈 폴더를 확인합니다! 아무도 이것을 언급하지 않았습니다!

sudo chmod 700 /home/ufo이 문제를 해결하세요.


요약:

다음 사항을 확인해야 합니다.

  • /home/ufo소유권은 700입니다.
  • /home/ufo/.ssh소유권은 700입니다.
  • /home/ufo/.ssh/authorized_keys 소유권은 600입니다.

ufo를 홈 폴더 이름으로 변경하세요.

답변2

sshd_config내 파일 에 다음을 추가해야 했습니다 .

PubkeyAcceptedKeyTypes=+ssh-dss

그런 다음 다시 시작하십시오 sshd.

답변3

분명히 사용자 ufo에 대한 authenticate_keys 파일에 항목을 추가하지 않았거나 ~ufo/.ssh 파일/디렉토리에 잘못된 권한이 있습니다.

답변4

millican이 답변에서 제안한 대로 sshd_config에 액세스하거나 수정할 수 없는 경우를 위한 또 다른 솔루션이 있습니다. 해결책은 ED25519 알고리즘을 사용하여 새 SSH 키를 생성하는 것입니다.

ssh-keygen -t ed25519 -C "[email protected]"

설명대로여기. 이것은 더 이상 사용되지 않는 RSA SHA-1 해싱 알고리즘으로 인해 발생한 문제를 해결했습니다.

관련 정보