SSH 클라이언트는 기본적으로 비밀번호를 요청합니다. 키를 사용하도록 어떻게 구성합니까?

SSH 클라이언트는 기본적으로 비밀번호를 요청합니다. 키를 사용하도록 어떻게 구성합니까?

내 서버에서 비밀번호와 공개 키 인증을 모두 사용할 수 있습니다. 명시적으로 지정된 키를 사용하여 클라이언트에서 로그인할 수 있습니다.

ssh user@host -i id_rsa

키 파일을 지정하지 않으면 비밀번호를 묻습니다. 하지만 기본적으로 키 파일을 사용하여 로그인하고 싶습니다.

~/.ssh/config에 몇 가지 내용을 넣을 수 있는 팁을 찾았습니다. 그래서 다음과 같이 지정했습니다.

Host xxx
    IdentityFile ~/.ssh/id_rsa
    IdentitiesOnly yes
    User uuu

구성이 해석됩니다. 사용자 "uuu"를 사용하지만 키 파일은 여전히 ​​무시됩니다. ssh가 기본적으로 이를 사용하도록 하려면 어떻게 해야 합니까?

답변1

파일 모드가 0600( )인 디렉터리 ~/.ssh와 개인 키가 있는 경우 자동으로 사용되며 공개 키 인증이 실패한 경우에만 비밀번호가 필요합니다. 이 조건이 모두 충족되는지 확인하세요. 이 옵션은 일반적으로 인증이 필요할 때 사용됩니다.id_rsa~/.ssh-rw-------ssh-i다른열쇠.

답변2

구성 파일은 다음과 같아야 합니다.

Host xxx
  User user
  IdentityFile ~/.ssh/id_rsa

파일이 올바른지 확인해야 합니다.

~/.ssh/id_rsa : rwx------

원격 호스트에서:

  • /home/user: 그룹 및 기타 사용자는 쓰기 권한이 없습니다.
  • /home/user/.ssh:rwx------

원격 호스트의 로그 파일을 확인하면 몇 가지 오류 메시지를 볼 수 있습니다.

tail -f /var/log/auth.log

답변3

SSH를 지원하는 서버가 있고 서버에 연결하려는 클라이언트가 있다고 가정하면 클라이언트 컴퓨터에서 개인 및 공개 키를 생성하고 서버에 공개 키를 복사해야 합니다.

이 작업을 수행하기 전에 SSH 서버가 클라이언트 인증 키를 찾는 위치를 확인해야 합니다. SSH 서버 구성 파일 /etc/ssh/sshd_config를 확인하고 다음 줄을 찾아야 합니다.

AuthorizedKeysFile      .ssh/authorized_keys

이는 서버가 authorized_keys각 사용자의 홈 디렉터리에 있는 file이라는 .ssh폴더에서 해당 사용자에게 로그인 권한을 부여하는 공개 키를 검색 한다는 것을 의미합니다.

이제 클라이언트에서 생성된 SSH 키를 사용했다고 말했듯이, authorized_keys로그인하려는 사용자의 공개 키 내용을 서버의 파일에 복사해야 합니다.

이를 단순화하기 위한 단계는 다음과 같습니다.

  • 지침을 보려면 서버를 검색하세요 AuthorizedKeysFile./etc/ssh/sshd_config
  • 클라이언트에서 개인 및 공개 키를 생성합니다(이미 수행했습니다).
  • authorized_keys로그인하려는 사용자의 클라이언트 공개 키 내용을 서버의 파일에 복사합니다 . 사용자로 로그인하려면 username공개 키를 파일에 복사해야 합니다 /home/username/.ssh/authorized_keys(또는 파일이 없으면 생성해야 합니다).

도움이 되었기를 바랍니다.

답변4

다들 감사 해요. 이것은 ssh-agent에 문제가 있는 것 같습니다. 다시 시작한 후에는 모든 것이 정상입니다. 서버에서 허용되는 로그인 방법이 변경되면 일부 구성이 즉시 새로 고쳐지지 않는 것 같습니다.

관련 정보