Atualizar chaves SSH para um usuário do SFTP

Este documento mostra como atualizar as chaves do Secure Shell (SSH) que um usuário do Cloud FTP pode usar para se conectar a um servidor SFTP.

Antes de começar

  • Receba a chave pública do usuário de cada par de chaves SSH que ele usará para se conectar ao servidor. Um usuário pode ter no máximo 10 chaves públicas.

    Se o usuário não tiver um par de chaves SSH, siga estas etapas para gerar um.

    Gerar um par de chaves SSH

    Qual formato de chave você precisa?

    O formato de chave necessário depende do cliente usado para se conectar ao servidor SFTP. Para mais informações, consulte Clientes SFTP compatíveis.

    Formato PEM

    1. Para criar um par de chaves OpenSSH (formato PEM), use o ssh-keygen utilitário.

      Na máquina cliente que se conectará ao servidor SFTP, execute o seguinte comando:

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

      Substitua KEY_PAIR_NAME por um nome para o par de chaves, como sftp_user_key.

    2. Extraia a chave pública:

      cat ~/.ssh/KEY_PAIR_NAME.pub

    Formato PPK

    1. Para criar um par de chaves PuTTY (formato PPK), use a PuTTYgen ferramenta.

      Na máquina cliente que se conectará ao servidor SFTP, execute o seguinte comando:

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

      Substitua KEY_PAIR_NAME por um nome para o par de chaves, como sftp_user_key.

    2. Extraia a chave pública:

      puttygen -L KEY_PAIR_NAME.ppk

Funções exigidas

Para receber a permissão necessária para atualizar usuários de SFTP, peça ao administrador para conceder a você o administrador de FTP (roles/ftp.admin) papel do IAM no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém a ftp.users.update permissão, que é necessária para atualizar usuários de SFTP.

Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.

Atualizar as chaves SSH de um usuário de SFTP

gcloud

Para atualizar as chaves SSH de um usuário de SFTP, execute o gcloud alpha storage ftp users update comando.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • CREDENTIAL_NAME: um nome exclusivo para identificar as credenciais do usuário.
  • SSH_PUBLIC_KEY: o corpo da chave pública SSH do usuário, no formato OpenSSH. Por exemplo, ssh-rsa AAAAB3NzaC1ycRexample....
  • USERNAME: o nome de usuário do SFTP.
  • LOCATION_ID: o local do servidor, como us-west1.
  • SERVER_ID: o ID do servidor.

Para configurar várias chaves públicas para um usuário, forneça várias credenciais no credentials.json arquivo.

Salve o conteúdo a seguir em um arquivo chamado credentials.json:

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

Execute o seguinte comando:

Linux, macOS ou 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
Leva alguns segundos para o usuário ser atualizado.

REST

Para atualizar as chaves SSH de um usuário de SFTP, use o servers.users.patch método. No parâmetro de consulta updateMask, forneça o campo userCredentials.

Antes de usar os dados da solicitação abaixo, faça estas substituições:

  • PROJECT_ID: o Google Cloud ID do projeto do servidor.
  • LOCATION_ID: o local do servidor, como us-west1.
  • SERVER_ID: o ID do servidor.
  • USERNAME: o nome de usuário do SFTP.
  • CREDENTIAL_NAME: um nome exclusivo para identificar as credenciais do usuário.
  • SSH_PUBLIC_KEY: o corpo da chave pública SSH do usuário, no formato OpenSSH. Por exemplo, ssh-rsa AAAAB3NzaC1ycRexample....

Para configurar várias chaves públicas para um usuário, forneça várias credenciais na userCredentials lista.

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, expanda uma destas opções:

A resposta identifica uma operação de longa duração. Leva alguns segundos para o usuário ser atualizado.