본문 바로가기
컴퓨터 활용(한글, 오피스 등)/기타

PuTTY를 사용하여 서버에 접속할 때 publickey 문제

by 3604 2025. 10. 2.
728x90
PuTTY를 사용하여 서버에 접속할 때 “No supported authentication methods available (server sent publickey,gssapi-with-mic)” 오류가 발생하면, 서버가 공개 키 인증을 요구하지만 PuTTY가 공개 키를 제대로 구성하지 않았기 때문입니다. 다음은 해결 방법입니다.

1. 서버의 인증 방식 확인

  •  
  • 서버의 관리자 계정(예: root)으로 로그인하여 /etc/ssh/sshd_config 파일을 확인합니다.
  • 다음 설정이 올바른지 확인하세요:
    plaintext
    Copy
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
  • 만약 서버에서 비밀번호 인증이 비활성화되어 있다면 PasswordAuthentication이 no로 설정되어 있는지 확인하세요.
  • SSH 서비스를 다시 시작하세요:
    bash
    Copy
    sudo systemctl restart sshd

2. 공개 키와 개인 키 생성

  • 만약 아직 키 쌍을 생성하지 않았다면, PuTTYgen을 사용하여 생성하세요:
    1. PuTTYgen을 다운로드하고 설치하세요.
    2. PuTTYgen을 열고, 적절한 키 유형(예: RSA)을 선택한 후 “Generate”를 클릭하세요.
    3. 키를 생성한 후, 개인 키(.ppk 파일)를 저장하세요.
    4. PuTTYgen 창 상단의 공개 키 부분을 복사하세요.

3. 서버에 공개 키 추가

  • 가능한 경우(예: 비밀번호 인증을 사용하여) 서버에 로그인하세요.
  • .ssh 디렉토리를 생성하세요(존재하지 않는 경우):
    bash
    Copy
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
  • 공개 키를 authorized_keys 파일에 추가하세요:
    bash
    Copy
    echo "your-public-key-here" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys

4. PuTTY에서 개인 키 구성

  • PuTTY를 엽니다.
  • 왼쪽 탐색창에서 “Connection” > “SSH” > “Auth”를 선택하세요.
  • “Private key file for authentication” 필드에서 “Browse”를 클릭하여 저장한 .ppk 파일을 선택하세요.
  • “Session” 부분으로 돌아가서 서버의 IP 주소와 포트(기본 포트가 아닌 경우)를 입력하세요.
  • “Open”을 클릭하여 서버에 접속하세요.

5. PuTTY 구성 확인

  • PuTTY의 SSH 구성이 올바른지 확인하세요:
    • “Connection” > “SSH” > “Kex”에서 알고리즘 목록에 서버가 지원하는 알고리즘이 포함되어 있는지 확인하세요.
    • “Connection” > “SSH” > “Ciphers”와 “MACs”에서 암호화 및 무결성 알고리즘이 서버가 지원하는 것과 일치하는지 확인하세요.

6. 서버의 GSSAPI 구성 확인

  • 만약 서버에서 GSSAPI 인증을 활성화했지만 클라이언트가 지원하지 않는다면, 비활성화해보세요:
    • 서버의 /etc/ssh/sshd_config 파일에서 다음 줄을 주석 처리하거나 no로 설정하세요:
      plaintext
      Copy
      GSSAPIAuthentication no
    • SSH 서비스를 다시 시작하세요:
      bash
      Copy
      sudo systemctl restart sshd

7. 클라이언트의 GSSAPI 구성 확인

  • 만약 서버에서 GSSAPI 인증을 요구하지만 클라이언트가 지원하지 않는다면, PuTTY를 최신 버전으로 업데이트하거나 GSSAPI를 지원하는 클라이언트(예: OpenSSH)를 사용해보세요.

8. 기타 가능한 문제

  • 파일 권한 문제: 서버의 .ssh 디렉토리와 authorized_keys 파일의 권한이 올바른지 확인하세요.
    bash
    Copy
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    • SELinux 또는 AppArmor: 서버에서 SELinux나 AppArmor가 활성화되어 있다면, 관련 정책을 조정해야 할 수 있습니다.
위의 단계를 통해 “No supported authentication methods available (server sent publickey,gssapi-with-mic)” 오류를 해결할 수 있어야 합니다. 만약 문제가 여전히 존재한다면, 서버의 로그 파일(예: /var/log/auth.log 또는 /var/log/secure)을 확인하여 더 많은 단서를 얻으세요.
728x90