브라우저에서 SSH로의 접속

브라우저에서 SSH로의 접속 기능을 사용하면 Google Cloud Platform Console 내에서 SSH를 사용하여 Google Compute Engine 가상 머신 인스턴스에 연결할 수 있습니다. 이 기능은 웹브라우저 확장 프로그램이나 추가 소프트웨어를 설치하지 않아도 사용할 수 있습니다. 브라우저에서 SSH로의 접속은 인스턴스를 연결하는 다른 방법을 대체하는 방법입니다.

Linux 가상 머신 인스턴스에 연결

Compute Engine은 브라우저에서 Linux 인스턴스에 연결할 때 필요할 경우 SSH 키 쌍을 만들고 적용해 SSH 키를 관리합니다. 브라우저에서 연결하는 데 사용하는 SSH 키는 관리할 수 없습니다. 대신 브라우저에서 연결하는 사용자의 액세스 권한을 ID 및 액세스 관리(IAM) 역할로 제어합니다. 프로젝트의 구성원 및 IAM 역할은 Google Cloud Platform 콘솔의 IAM 페이지에서 확인할 수 있습니다.

IAM 페이지로 이동

브라우저를 통해 연결하려면 Compute 인스턴스 관리자인 프로젝트 구성원이어야 합니다. 또한 인스턴스를 서비스 계정으로 실행하려면 서비스 계정 사용자여야 합니다. 브라우저를 통해 연결할 액세스 권한이 없다면 프로젝트 소유자에게 프로젝트에 추가하고 액세스 권한을 부여해 달라고 요청하세요.

액세스 권한이 부여되면 GCP 콘솔의 웹브라우저에서 Linux 인스턴스에 바로 연결하세요.

  1. GCP Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 가상 머신 인스턴스 목록에서 연결할 인스턴스 행의 SSH를 클릭합니다.

인스턴스 이름을 클릭하고 인스턴스 세부정보 페이지에서 SSH를 클릭해 인스턴스에 대한 SSH 연결을 여는 방법도 있습니다.

이제 터미널을 사용하여 Linux 인스턴스에서 명령어를 실행할 수 있습니다. 작업이 끝나면 exit 명령어를 사용하여 인스턴스 연결을 해제합니다.

지원되는 환경

브라우저에서 SSH로의 접속은 다음을 지원합니다.

  • 웹브라우저: Google Chrome, Firefox, Microsoft Edge, Microsoft Internet Explorer 11 이상, Safari 8 이상의 최신 버전. Safari의 시크릿 브라우저 모드는 지원되지 않습니다.
  • 가상 머신 구성: 모든 Linux 가상 머신 이미지는 Google Cloud Platform에서 기본적으로 제공됩니다.

알려진 문제

  • 시작 지연 시간: 브라우저에서 SSH로의 접속을 사용할 때 현재 연결 시간은 5~30초입니다. 가상 머신 인스턴스에서 실행되는 Google 데몬 최신 버전의 연결 시간은 5초에 가깝습니다. 그 밖의 연결 시간은 최대 30초까지 걸릴 수 있습니다.

  • 새 가상 머신 인스턴스를 바로 사용할 수 없음: SSH를 설정하기 전에 새 인스턴스를 부팅하는 데 시간이 걸립니다. 새 인스턴스에 연결하지 못했다면 몇 분 후에 다시 시도하세요.

  • 간헐적 연결 해제: 현재는 연결 수명 기간에 대한 특정한 SLA를 제공하지 않습니다. 터미널 창을 장시간 열어 두려면 tmuxscreen 같은 터미널 멀티플렉서를 사용하세요.

  • 외부 IP 주소가 없는 인스턴스에 연결: 현재는 브라우저에서 SSH로의 접속을 이용해 외부 IP 주소가 없는 인스턴스에 연결할 수 없습니다. 한 가지 해결 방법은 이 기능을 이용하여, 프런트엔드를 실행하는 인스턴스처럼 외부 IP 주소가 없는 프로젝트의 다른 인스턴스로 SSH를 보내는 것입니다. 그런 다음 ssh -A INTERNAL_IP 명령어를 이용하여 내부 IP 주소로 원하는 인스턴스에 로그인합니다. 첫 번째 인스턴스에 로그인한 후 약 2분 이내에 이 명령어를 실행해야 합니다. 그렇지 않으면 SSH 키가 만료되고 전달된 연결에서 로그인 사용자 인증 정보를 사용할 수 없게 됩니다.

  • Ctrl+W 창 닫기: Ctrl+W, Ctrl+F4, Ctrl+Tab 등 브라우저 키보드 단축키로 작동하는 키 조합이 SSH 클라이언트에서 대상 시스템으로 전달되지 않습니다. 이러한 단축키를 보내려면 창의 오른쪽 상단에 있는 키보드 아이콘을 클릭하세요. Google Chrome 브라우저를 사용한다면 'Google Cloud Platform용 SSH' 확장 프로그램을 설치하세요. 이 확장 프로그램을 사용하면 CTRL+W처럼 브라우저에 일반적으로 예약된 키보드 단축키에 직접 액세스할 수 있어 브라우저 및 Google Cloud Shell에서 SSH 콘솔 환경이 개선됩니다.

'포트 22에 연결할 수 없습니다' 오류 메시지 처리

이 오류는 다음 조건에서 나타날 수 있습니다.

  • 인스턴스가 부팅되지만 sshd가 아직 실행되지 않습니다. 다시 시도하기 전에 인스턴스의 부팅이 완료되었는지 확인하세요.

  • 인스턴스가 sshd를 실행하지 않습니다. sshd는 기본적으로 표준 Compute Engine 이미지를 사용하여 생성된 인스턴스에서 실행됩니다. 수동으로 sshd를 사용 중지했거나 이 서비스를 실행하지 않는 커스텀 이미지를 구성했다면 브라우저에서 SSH로의 접속은 작동하지 않습니다.

  • sshd가 연결하려는 포트가 아닌 다른 포트에서 수신 대기 중입니다. 기본적으로 브라우저에서 SSH로의 접속은 포트 22의 인스턴스에 연결됩니다. 커스텀 포트에서 sshd를 실행한다면 SSH 버튼 드롭다운 메뉴의 '커스텀 포트의 브라우저 창에서 열기' 항목으로 해당 포트에 연결할 수 있습니다.

  • 포트에서 SSH 액세스를 허용하는 방화벽 규칙이 없습니다. 포트 22의 SSH 액세스는 기본적으로 모든 Compute Engine 인스턴스에 사용 설정되어 있습니다. 액세스를 중지했다면 브라우저에서 SSH로의 접속은 작동하지 않습니다. 22 이외의 포트에서 sshd를 실행한다면 커스텀 방화벽 규칙을 이용해 해당 포트에 대한 액세스를 사용 설정해야 합니다.

  • SSH 액세스를 허용하는 방화벽 규칙이 사용 설정되었지만 GCP Console 서비스로부터의 연결을 허용하도록 구성되지 않았습니다. 브라우저 기반 SSH 세션의 소스 IP 주소는 GCP Console이 동적으로 할당하며 세션마다 다를 수 있습니다. 이 기능이 작동하려면 공개 SPF 레코드를 사용해 검색할 수 있는 IP 주소나 Google의 IP 주소 범위에서의 연결을 허용해야 합니다.

  • 인스턴스가 종료되었습니다. 인스턴스가 실행 중인지 확인하세요. 이 가이드에서 비정상적인 인스턴스를 해결하는 방법을 확인해 보세요.

'연결할 수 없습니다. 다시 시도하는 중입니다' 오류 처리

  • 인스턴스가 Google 데몬을 실행 중이지 않습니다. Google 데몬은 모든 표준 Google Compute Engine 이미지에 설치되어 실행됩니다. 커스텀 이미지는 브라우저에서 SSH로의 접속에서는 지원되지 않습니다. 직렬 콘솔 출력 페이지로 이동해 accounts-from-metadata: 문자열 프리픽스가 붙은 출력 행을 찾아 Daemon이 실행 중인지 확인할 수 있습니다. 표준 이미지를 사용 중이지만 직렬 콘솔 출력에 이러한 출력 프리픽스가 표시되지 않는다면 Daemon이 중단되었을 가능성이 있습니다. 인스턴스를 재부팅해 Daemon을 다시 시작하세요.

  • 인스턴스의 부팅 디스크에 여유 공간이 부족합니다. 연결이 설정되면 Daemon은 현재 세션에서 사용하는 공개 SSH 키를 이용해 ~/.ssh/authorized_keys를 업데이트합니다. 디스크의 여유 공간이 부족하면 업데이트가 실패합니다. 인스턴스의 직렬 콘솔 출력을 확인하고 '남은 공간 없음' 오류 여부를 확인해 이 조건을 진단하세요. 다음은 용량을 확보할 수 있는 방법입니다.

    • 인스턴스 부팅 영구 디스크의 크기를 조절해 크기를 늘립니다. 인스턴스가 사용하는 운영체제 이미지가 자동 크기 조절을 지원한다면 이 방법이 가장 간편합니다. 인스턴스가 다시 시작되면 새 크기에 맞게 운영체제에서 루트 파티션의 크기가 자동으로 조절되기 때문입니다.
    • 어떤 파일이 디스크 공간을 차지하는지 안다면 필요 없는 파일을 삭제해 인스턴스를 시작할 공간을 확보하는 시작 스크립트를 만드세요. 스크립트를 실행하고 파일을 정리할 수 있도록 인스턴스를 다시 시작하세요. 올바른 명령어를 사용하고 올바른 파일을 삭제해야 합니다. 인스턴스 시작 후 SSH를 통해 인스턴스에 연결할 수 있다면 파일을 계속 삭제하지 않도록 startup-script 메타데이터 항목을 다시 설정하세요.
    • 인스턴스의 디스크에 액세스하는 방법은 문제해결 가이드를 참조하세요.
  • 연결하는 사용자의 $HOME 또는 $HOME/.ssh 디렉토리 관련 권한이 올바르지 않습니다. Google 데몬은 공개 SSH 키를 연결하는 사용자의 $HOME/.ssh/authorized_keys 파일에 저장할 수 있어야 합니다. $HOME/.ssh 디렉토리는 Unix 권한 0700이 있어야 하고 authorized_keys 파일은 Unix 권한 0600이 있어야 하며 사용자는 두 권한을 모두 소유해야 합니다. 권한이나 소유권을 잘못 구성하면 연결 문제가 발생할 수 있습니다. 문제를 해결하려면 사용자 이름을 새 이름으로 변경해 신규 사용자와 신규 사용자의 홈 디렉토리를 만들어야 합니다. 그런 다음 새 사용자로 연결해 기존 사용자 디렉토리의 권한 문제를 해결하세요.

복사/붙여넣기

브라우저와 플랫폼에서 지원하는 키보드 단축키(Windows와 Linux에서는 Ctrl+C/Ctrl+V, macOS에서는 Cmd+C/Cmd+V, Chrome OS에서는 Ctrl+Shift+V)를 이용하여 텍스트를 복사해서 붙여넣을 수 있습니다. 일반적으로 이 명령어는 대부분의 구성에서 작동하지만 구성에 따라 다른 결과가 나타날 수 있습니다.

스크롤

마우스 휠이나 트랙패드로 터미널을 스크롤할 수 있습니다. 또한 Windows와 Linux에서는 Ctrl-Shift-PageUp/Ctrl-Shift-PageDn 단축키로, macOS에서는 Fn-Shift-Up/Fn-Shift-Down 단축키로 터미널을 스크롤할 수도 있습니다.

로그인 사용자 이름

기본 사용자 이름

기본적으로 SSH 세션의 사용자 이름은 계정에 로그인한 이메일 주소에서 생성되며 도메인 정보는 생략됩니다. 예를 들어 이메일이 user@gmail.com이면 해당 사용자 이름은 user입니다.

OS 로그인이 사용 설정된 기본 사용자 이름

OS 로그인이 사용 설정되어 있고 G Suite 관리자가 사용자 이름을 설정하지 않은 경우 더 긴 버전의 사용자 이름이 기본적으로 설정됩니다. 이 사용자 이름은 도메인 정보를 포함합니다. 예를 들어 이메일이 user@gmail.com이면 해당 사용자 이름은 user_gmail_com입니다. OS 로그인 동작에 대한 자세한 내용은 예상되는 로그인 동작을 참조하세요.

기본 사용자 이름 변경

다음 안내에 따라 SSH 창에서 사용자 이름을 변경할 수 있습니다.

  1. 가상 머신 인스턴스에 연결합니다.
  2. SSH 창의 오른쪽 상단에서 설정 아이콘 설정 아이콘을 클릭합니다.
  3. Linux 사용자 이름 변경을 선택합니다. Linux 시스템의 로그인 이름은 32자(바이트)로 제한되므로, 기본 사용자 이름 및 구성한 사용자 이름은 글자 수 제한을 초과하지 않도록 끝이 잘립니다.
  4. (선택사항) 데이터를 새 홈 디렉토리에 복사합니다. 새 사용자 이름은 다른 Unix 사용자이며 따라서 홈 디렉터리를 사용하여 데이터를 저장했으면 cp 명령어를 사용하여 데이터를 새 디렉토리로 복사할 수 있습니다. 예를 들어 사용자 이름을 user_gmail_com에서 user로 변경하려면 다음 명령어를 실행합니다.

    # This will overwrite files in the target directory, so be careful.
    $ sudo cp -r /home/user_gmail_com/. /home/user
    
    $ sudo chown -R user:user /home/user
    
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서