SFTP 사용자의 SSH 키 업데이트

이 문서에서는 Cloud FTP 사용자가 SFTP 서버에 연결하는 데 사용할 수 있는 보안 셸 (SSH) 키를 업데이트하는 방법을 보여줍니다.

시작하기 전에

  • 서버에 연결하는 데 사용할 각 SSH 키 쌍에서 사용자의 공개 키를 가져옵니다. 사용자는 최대 10개의 공개 키를 가질 수 있습니다.

    사용자에게 SSH 키 쌍이 없는 경우 다음 단계에 따라 생성합니다.

    SSH 키 쌍 생성

    어떤 키 형식이 필요한가요?

    필요한 키 형식은 SFTP 서버에 연결하는 데 사용하는 클라이언트에 따라 다릅니다. 자세한 내용은 지원되는 SFTP 클라이언트를 참조하세요.

    PEM 형식

    1. OpenSSH 키 쌍 (PEM 형식)을 만들려면 ssh-keygen 유틸리티를 사용합니다.

      SFTP 서버에 연결할 클라이언트 머신에서 다음 명령어를 실행합니다.

      ssh-keygen -t rsa -b 4096 -f ~/.ssh/KEY_PAIR_NAME

      KEY_PAIR_NAME을 sftp_user_key와 같은 키 쌍의 이름으로 바꿉니다.

    2. 공개 키를 추출합니다.

      cat ~/.ssh/KEY_PAIR_NAME.pub

    PPK 형식

    1. PuTTY 키 쌍 (PPK 형식)을 만들려면 PuTTYgen 도구를 사용합니다.

      SFTP 서버에 연결할 클라이언트 머신에서 다음 명령어를 실행합니다.

      puttygen -t rsa -b 4096 -o KEY_PAIR_NAME.ppk

      KEY_PAIR_NAME을 sftp_user_key와 같은 키 쌍의 이름으로 바꿉니다.

    2. 공개 키를 추출합니다.

      puttygen -L KEY_PAIR_NAME.ppk

필요한 역할

SFTP 사용자를 업데이트하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한FTP 관리자 (roles/ftp.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 SFTP 사용자를 업데이트하는 데 필요한 ftp.users.update 권한이 포함되어 있습니다.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

SFTP 사용자의 SSH 키 업데이트

gcloud

SFTP 사용자의 SSH 키를 업데이트하려면 gcloud alpha storage ftp users update 명령어를 실행합니다.

아래의 명령어 데이터를 사용하기 전에, 다음을 바꿉니다.

  • CREDENTIAL_NAME: 사용자 인증 정보를 식별하는 고유한 이름입니다.
  • SSH_PUBLIC_KEY: OpenSSH 형식의 사용자 SSH 공개 키 본문입니다. 예를 들면 ssh-rsa AAAAB3NzaC1ycRexample...입니다.
  • USERNAME: SFTP 사용자의 사용자 이름입니다.
  • LOCATION_ID: 서버의 위치입니다(예: us-west1).
  • SERVER_ID: 서버 ID입니다.

사용자의 공개 키를 여러 개 구성하려면 credentials.json 파일에 여러 인증 정보를 제공합니다.

다음 콘텐츠를 credentials.json 파일에 저장합니다.

[
  {
    "credentialName": "CREDENTIAL_NAME",
    "credentialType": "PUBLIC_KEY",
    "sshPublicKeyBody": "SSH_PUBLIC_KEY"
  }
]

다음 명령어를 실행합니다.

Linux, macOS 또는 Cloud Shell

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID \
    --server=SERVER_ID --user-credentials-from-file=credentials.json

Windows(PowerShell)

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID `
    --server=SERVER_ID --user-credentials-from-file=credentials.json

Windows(cmd.exe)

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID ^
    --server=SERVER_ID --user-credentials-from-file=credentials.json
사용자가 업데이트되는 데 몇 초 정도 걸립니다.

REST

SFTP 사용자의 SSH 키를 업데이트하려면 servers.users.patch 메서드를 사용합니다. updateMask 쿼리 매개변수에서 userCredentials 필드를 제공합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 서버의 Google Cloud 프로젝트 ID입니다.
  • LOCATION_ID: 서버의 위치입니다(예: us-west1).
  • SERVER_ID: 서버 ID입니다.
  • USERNAME: SFTP 사용자의 사용자 이름입니다.
  • CREDENTIAL_NAME: 사용자 인증 정보를 식별하는 고유한 이름입니다.
  • SSH_PUBLIC_KEY: OpenSSH 형식의 사용자 SSH 공개 키 본문입니다. 예를 들면 ssh-rsa AAAAB3NzaC1ycRexample...입니다.

사용자의 공개 키를 여러 개 구성하려면 userCredentials 목록에 여러 인증 정보를 제공합니다.

HTTP 메서드 및 URL:

PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=userCredentials

JSON 요청 본문:

{
  "userCredentials": [
    {
      "credentialName": "CREDENTIAL_NAME",
      "credentialType": "PUBLIC_KEY",
      "sshPublicKeyBody": "SSH_PUBLIC_KEY"
    }
  ]
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

응답은 장기 실행 작업을 식별합니다. 사용자가 업데이트되는 데 몇 초 정도 걸립니다.