본문으로 건너뛰기

인스턴스 연결 문제 (Linux)

본 문서는 Linux 환경에서 SSH를 이용한 인스턴스 접속 문제와 해결 방법을 설명합니다.


사전 점검 항목

Linux 서버의 SSH 접속 문제를 해결하기 전에, 다음 항목들을 먼저 확인하시기 바랍니다.

기본 사용자 이름 확인

인스턴스의 기본 사용자 이름(Default username)은 다음과 같으며, 콘솔에서도 확인 가능합니다.

  • 경로: 카카오클라우드 콘솔 > Virtual Machine > 인스턴스 탭 > 해당 인스턴스의 [더 보기] 아이콘 > SSH 연결
OS기본 사용자 이름(Default username)
Ubuntuubuntu
CentOScentos
Rocky Linuxrocky
Alma Linuxalmalinux
안내

카카오클라우드는 기본으로 SSH 키 방식의 접속을 지원하며, SSH는 22 포트를 사용합니다.

보안 그룹 및 라우팅 테이블 확인

  • 출발지에서 Linux 서버까지 네트워크가 정상적으로 연결되어 있는지 확인합니다.
  • 인스턴스와 연결된 보안 그룹에서 연결이 허용되었는지, 또는 라우팅 테이블을 확인하여 통신 구간에 문제가 없는지 점검합니다.

Linux 서버 상태 확인

Linux 서버가 정상적으로 동작하고 있는지 상태를 확인합니다.

  • 카카오클라우드 콘솔에서 해당 인스턴스가 Active 상태인지 확인합니다.
  • 인스턴스의 시스템 로그에 { Hostname } login: 이 출력되어 있는지 확인합니다.
    • 경로: 카카오클라우드 콘솔 > Virtual Machine > 인스턴스 탭 > 해당 인스턴스의 [더 보기] 아이콘 > 시스템 로그 확인

SSH 에러 메시지

SSH 접속 시도 시 발생할 수 있는 에러 메시지와 해결 방법은 다음과 같습니다.

WARNING: UNPROTECTED PRIVATE KEY FILE!

이 에러는 SSH 키 파일에 너무 많은 권한이 부여된 경우 발생할 수 있습니다.

키 파일 권한 문제
ssh -i {SSH 키 파일} ubuntu@'{HOST}' -v

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0666 for '{SSH 키 파일}' are too open.
It is required that your private 키 파일s are NOT accessible by others.
This private key will be ignored.

▶️ 다음 단계를 따라 SSH 키 파일의 권한 설정을 변경합니다.

  1. SSH 키 파일의 현재 권한을 확인합니다.

    ls -al {SSH 키 파일}
  2. SSH 키 파일을 소유자만 read 할 수 있도록 권한을 변경합니다.

    chmod 0400 {SSH 키 파일}


Load key {SSH 키 파일} : invalid format

이 에러는 SSH 키 파일이 올바른 형식이 아닐 경우 또는 파일이 손상되었거나 잘못 저장되었을 경우에 발생합니다.

ssh -i {SSH 키 파일} ubuntu@{HOST}  
Load key "{SSH 키 파일}": invalid format
{HOST}: Permission denied (publickey).

▶️ SSH 키 파일을 열어 내용을 확인합니다.

정상적인 키인 경우 아래의 포맷입니다. 이 형식이 아닐 경우 정상적인 키 인지 확인하시기 바랍니다. 키 파일에 문제가 있는 경우 신규 키 페어를 발급받아 복구해야 합니다. 자세한 정보는 인스턴스 키 페어 분실 해결 문서를 참고하시기 바랍니다.

RSA ssh key format
vi {SSH 키 파일}

-----BEGIN RSA PRIVATE KEY-----
내용...
-----END RSA PRIVATE KEY-----


Warning: Identity file {SSH 키 파일} not accessible: No such file or directory.

이 에러는 SSH 키 파일을 찾지 못했을 때 발생합니다.

ssh -i {SSH 키 파일} ubuntu@{HOST}
Warning: Identity file {SSH 키 파일} not accessible: No such file or directory.
{HOST}: Permission denied (publickey).

▶️ SSH 키 파일이 있는지 확인하고, SSH 키 파일이 위치한 디렉터리에 접근이 가능한지 확인합니다.

ls -al {SSH 키 파일}


ssh: connect to host {Host} port 22: Operation timed out

이 에러는 서버 연결을 시도 중, 타임아웃이 발생했을 때 표시됩니다.

ssh -i {SSH 키 파일} ubuntu@'{HOST}' -v
OpenSSH_9.0p1, LibreSSL 3.3.6
debug1: Reading configuration data /Users/kakao_ent/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: include /etc/ssh/ssh_config.d/* matched no files
debug1: /etc/ssh/ssh_config line 54: Applying options for *
debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
debug1: Connecting to '{HOST}' port 22.
debug1: connect to address '{HOST}' port 22: Operation timed out
ssh: connect to host '{HOST}' port 22: Operation timed out

▶️ 문제 해결을 위해 다음 항목을 확인합니다.

  • 출발지에서 Linux 서버까지 네트워크가 정상적으로 연결이 되어야 합니다.
  • 보안 그룹에서 연결이 허용되었는지, 또는 라우팅 테이블을 확인하여 통신 구간에 문제가 없는지 점검합니다.
  • 카카오클라우드 콘솔에서 해당 인스턴스가 Active 상태인지 확인합니다.
  • 만약 SSH daemon에 문제가 있을 경우, 직접 서버에 SSH로 접속하여 확인할 수 없는 상황이기 때문에 인스턴스 재기동 또한 고려해야 합니다.

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

이 에러는 SSH 클라이언트가 이전에 연결한 서버의 식별 정보가 변경되었음을 나타냅니다. 이러한 변경은 보안 문제를 나타낼 수 있으므로 신중하게 처리해야 합니다.
이 에러는 다음 상황에서 발생할 수 있습니다.

  • 서버의 HOST 키가 변경됨: SSH 서버의 HOST 키가 변경되었을 발생합니다. HOST 키는 서버를 고유하게 식별하고 연결의 보안성을 보장하는 데 사용됩니다.
    HOST 키는 일반적으로 SSH 클라이언트에서 처음 연결할 때 생성되며, 서버에서 HOST 키가 변경된 경우에는 이러한 경고가 발생할 수 있습니다.
    SSH 서버가 재설정되거나 재설치된 경우에도 HOST 키가 변경될 수 있습니다.

  • 중간자 공격: 중간자 공격의 가능성도 있습니다. 이는 악의적인 공격자가 네트워크 트래픽을 가로채고 변경하는 것을 의미합니다

    ssh -i {SSH 키 파일} ubuntu@'{HOST}'
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that a host key has just been changed.
    The fingerprint for the ED25519 key sent by the remote host is
    SHA256:PtRMM9ps+sHDxMmgDlabcdefghaddfQQpylRabcdefg6bPI.
    Please contact your system administrator.
    Add correct host key in ~/.ssh/known_hosts to get rid of this message.
    Offending ECDSA key in ~/.ssh/known_hosts:25
    Host key for {HOST} has changed and you have requested strict checking.
    Host key verification failed.

▶️ 서버의 HOST 키의 변경을 인지한 상태이고, 보안 문제가 없다고 전제한 상황에서는 다음과 같이 문제를 해결할 수 있습니다.

  • 해결 방안 1

    HOST 키를 삭제 후 SSH 재접속을 수행합니다.

    1. SSH 클라이언트에서 ~/.ssh/known_hosts 파일을 엽니다.

    2. 출발지 서버의 등록된 HOST 키 행을 삭제하고 저장합니다.

    3. 이후 다시 SSH 접속을 시도합니다.

      ssh -i {SSH 키 파일} ubuntu@'{HOST}' 
  • 해결 방안 2

    해당 서버에 접속할 때마다, -o StrictHostKeyChecking=no 옵션을 추가합니다.

    ssh -i {SSH 키 파일} -o StrictHostKeyChecking=no ubuntu@'{HOST}' 


Permission denied (publickey), Permission denied (publickey,gssapi-keyex,gssapi-with-mic)

이 에러는 다양한 원인으로 발생하며 주로 아래와 같은 원인이 있습니다. 아래 명시된 원인뿐만 아니라 다른 이유로도 에러가 발생할 수 있습니다.

  • 다른 SSH 키를 사용하여 SSH 접속을 시도한 경우

  • 잘못된 사용자로 SSH 접속을 시도한 경우

  • 키 지정을 하지 않고, SSH 접속을 시도한 경우

  • 인스턴스 생성 후 인스턴스의 SSH 키 세팅이 정상적으로 되지 않은 상태에서 SSH 접속을 시도한 경우 등

    ssh -i {SSH 키 파일} ubuntu@'{HOST}'

    '{SSH 키 파일} ubuntu@{HOST}': Permission denied (publickey).

▶️ 이 에러의 원인은 다양하므로, 원인에 맞게 필요한 조치를 합니다.

특히 카카오클라우드에서 최초 인스턴스 생성 시 인스턴스 세팅을 위해 169.254.169.254(카카오클라우드 메타) 서버와 통신해야 하는데 보안 그룹 설정으로 인해 169.254.169.254 서버와 통신이 안 될 경우, 인스턴스의 SSH 키 세팅에 문제가 발생하여 해당 에러가 발생할 수 있습니다.
따라서 최초 인스턴스 생성 시 169.254.169.254와 통신을 할 수 있도록 보안 그룹을 설정해야 합니다.



ssh connect to host {서버 IP} port 22: Network is unreachable

이 에러는 목적지 호스트의 경로가 없거나 도달할 수 없을 때 발생합니다. 주로 다음과 같은 이유로 발생할 수 있습니다:

  • 네트워크 구성 에러: 시스템의 네트워크 구성이 잘못되었을 수 있습니다. 잘못된 IP 주소, 서브넷 마스크, 라우팅 테이블 설정 등이 원인이 될 수 있습니다.

  • 게이트웨이 설정 에러: 목적지 호스트로의 경로를 찾기 위해 사용하는 게이트웨이가 올바르게 설정되지 않았을 수 있습니다. 게이트웨이가 네트워크와 연결되어 있지 않거나, 게이트웨이의 설정이 잘못되었을 경우에도 이 에러가 발생할 수 있습니다.

    ssh -i {SSH 키 파일} ubuntu@'{HOST}'

    ssh: connect to host {서버 IP} port 22: Network is unreachable

▶️ VPC 문서를 참고하여 네트워크 구성을 검토하고, 게이트웨이, 라우팅 테이블 설정을 확인합니다.