Mengautentikasi menggunakan kunci publik SSH

Pengguna dan akun layanan dapat menggunakan kunci publik SSH untuk melakukan autentikasi ke repositori Secure Source Manager. Halaman ini menjelaskan cara membuat pasangan kunci SSH, lalu menambahkannya sebagai metode autentikasi di antarmuka web Secure Source Manager.

Secure Source Manager mendukung jenis kunci SSH RSA, ECDSA, dan Ed25519.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk mengautentikasi menggunakan kunci publik SSH, minta administrator Anda untuk memberi Anda peran IAM berikut:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengautentikasi menggunakan kunci publik SSH. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengautentikasi menggunakan kunci publik SSH:

  • securesourcemanager.sshkeys.createAny di instance Secure Source Manager
  • Untuk menetapkan kunci SSH ke akun layanan: iam.serviceAccounts.actAs di akun layanan

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Untuk mengetahui informasi tentang cara memberikan peran Secure Source Manager, lihat Kontrol akses dengan IAM dan Memberi pengguna akses instance.

Membuat pasangan kunci

Pasangan kunci SSH terdiri dari kunci pribadi yang berada di sistem lokal Anda dan kunci publik yang Anda daftarkan dengan Google Cloud.

Linux atau macOS

  1. Instal OpenSSH di sistem lokal Anda.

  2. Di command prompt, masukkan perintah berikut:

    ssh-keygen -t KEY_TYPE -C "USER_EMAIL"
    

    Dengan:

    • USER_EMAIL adalah alamat email Anda.
    • KEY_TYPE adalah salah satu dari rsa, ecdsa, atau ed25519.

    Contoh:

    ssh-keygen -t rsa -C "user@example.com"
    
    1. Saat diminta, masukkan lokasi dan nama file untuk file kunci publik. Untuk menerima lokasi dan nama file default, tekan Enter.

    2. Saat diminta, biarkan frasa sandi kosong, lalu tekan Enter.

Windows

  1. Jika Anda belum memilikinya, instal klien OpenSSH (disertakan dalam Windows 10 dan yang lebih baru) dan Git untuk Windows di sistem lokal Anda. Petunjuk berikut menggunakan OpenSSH dan Git untuk Windows.

  2. Di PowerShell atau Command Prompt, jalankan perintah berikut:

    ssh-keygen -t KEY_TYPE -C "USER_EMAIL"
    

    Dengan:

    • USER_EMAIL adalah alamat email Anda.
    • KEY_TYPE adalah salah satu dari rsa, ecdsa, atau ed25519.

    Contoh:

    ssh-keygen -t rsa -C "user@example.com"
    
    1. Saat diminta, masukkan lokasi dan nama file untuk file kunci publik. Untuk menerima lokasi dan nama file default (`%USERPROFILE%.ssh`), tekan Enter.

    2. Saat diminta, biarkan frasa sandi kosong, lalu tekan Enter.

Menambahkan kunci SSH ke agen SSH

Untuk menggunakan pasangan kunci SSH yang Anda buat, tambahkan kunci Anda ke agen SSH. Jika Anda tidak menyimpan kunci di lokasi default, menambahkannya ke agen SSH akan membantu SSH menemukan kunci Anda.

Linux atau macOS

  1. Mulai ssh-agent di latar belakang:

    eval "$(ssh-agent -s)"
    

    Perintah ini menampilkan ID proses (PID) agen, misalnya:

    Agent pid 3245
    

    Bergantung pada lingkungan Anda, Anda mungkin perlu menggunakan perintah yang berbeda, misalnya:

    • Untuk menggunakan akses root, jalankan sudo -s -H sebelum memulai ssh-agent.
    • Untuk menjalankan ssh-agent secara langsung, gunakan exec ssh-agent bash atau exec ssh-agent zsh.
  2. Tambahkan kunci pribadi SSH Anda ke ssh-agent.

    ssh-add ~/.ssh/FILENAME
    

    Dengan FILENAME adalah nama file kunci pribadi Anda, misalnya id_rsa atau id_ed25519.

Windows

  1. Mulai ssh-agent.

    • Jika Anda menggunakan Git Bash, mulai ssh-agent:

      eval "$(ssh-agent -s)"
      
    • Jika Anda menggunakan PowerShell atau Command Prompt, mulai layanan ssh-agent. Di PowerShell, jalankan:

      Set-Service ssh-agent -StartupType Automatic; Start-Service ssh-agent
      
  2. Tambahkan kunci pribadi SSH Anda ke ssh-agent.

    • Jika Anda menggunakan Git Bash:

      ssh-add ~/.ssh/FILENAME
      
    • Jika Anda menggunakan PowerShell atau Command Prompt:

      ssh-add $env:USERPROFILE\.ssh\FILENAME
      

    Dengan FILENAME adalah nama file kunci pribadi Anda, misalnya id_rsa atau id_ed25519.

Menambahkan kunci SSH untuk pengguna

  1. Di antarmuka web Secure Source Manager, dari halaman instance atau repositori, klik menu opsi lainnya.
  2. Klik User SSH keys.

    Halaman Kunci SSH pengguna akan terbuka, dan daftar kunci yang sudah ada yang telah Anda buat akan ditampilkan.

  3. Di halaman User SSH keys, klik Add key.

  4. Di halaman Add SSH Key, masukkan nilai berikut untuk kunci Anda:

    1. Judul: tambahkan judul deskriptif untuk kunci.
    2. Kunci publik SSH: tempel string kunci publik Anda. Untuk mendapatkan string kunci publik Anda, buka file kunci publik (FILENAME.pub) di editor teks, atau jalankan salah satu perintah berikut:

      Linux atau macOS

      cat ~/.ssh/FILENAME.pub
      

      Windows

      cat $env:USERPROFILE\.ssh\FILENAME.pub
      

      Ganti FILENAME dengan nama file kunci Anda.

Anda dapat menggunakan kunci SSH untuk melakukan autentikasi ke repositori Secure Source Manager mana pun asalkan Anda memiliki izin yang diperlukan di repositori tersebut.

Menambahkan kunci SSH untuk akun layanan

Untuk mengizinkan akses terprogram ke repositori, Anda dapat menambahkan kunci SSH untuk akun layanan.

  1. Jika Anda belum memiliki akun layanan yang ingin digunakan, buat akun layanan.
  2. Dari antarmuka web Secure Source Manager, klik menu more options.
  3. Klik Service account SSH keys. Halaman Kunci SSH akun layanan akan terbuka, dan daftar kunci yang ada yang telah Anda tambahkan akan ditampilkan.
  4. Di halaman Service account SSH keys, klik Add key.
  5. Di halaman Tambahkan kunci SSH akun layanan, masukkan nilai berikut untuk kunci Anda:

    1. Judul: judul deskriptif untuk kunci
    2. Akun layanan: email akun layanan untuk akun layanan yang ingin Anda gunakan kunci SSH-nya dalam format SA_NAME@PROJECT_ID.iam.gserviceaccount.com

      Di mana

      • SA_NAME adalah nama akun layanan.
      • PROJECT_ID adalah project ID project tempat akun layanan dibuat.
    3. Kunci Publik SSH: Kunci SSH publik Anda. Lihat Membuat pasangan kunci untuk mengetahui informasi tentang cara membuat pasangan kunci SSH.

  6. Jika akun layanan tidak berada dalam project yang sama dengan instance Secure Source Manager Anda, berikan salah satu peran atau izin berikut pada akun layanan yang ingin Anda gunakan kepada agen layanan Secure Source Manager:

    • Izin iam.serviceAccounts.signJwt
    • Peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator)

    Jalankan perintah berikut untuk menambahkan kebijakan IAM ke akun layanan Secure Source Manager Anda guna memberikan peran Pembuat Token Akun Layanan.

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \
        --member="serviceAccount:service-INSTANCE_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com" \
        --role="roles/iam.serviceAccountTokenCreator"
    

    Dengan SERVICE_ACCOUNT adalah akun layanan yang ingin Anda gunakan dan INSTANCE_PROJECT_NUMBER adalah nomor project instance Secure Source Manager Anda.

    SERVICE_ACCOUNT harus diformat sebagai ID akun layanan numerik atau sebagai email, seperti ini: 123456789876543212345 atau my-iam-account@somedomain.com.

Langkah berikutnya