Mengelola kunci SSH dan PGP di Transfer Family - AWS Transfer Family

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengelola kunci SSH dan PGP di Transfer Family

Di bagian ini, Anda dapat menemukan informasi tentang kunci SSH, termasuk cara membuatnya dan cara memutarnya. Untuk detail tentang penggunaan Transfer Family with AWS Lambda to manage keys, lihat posting blog Mengaktifkan manajemen kunci layanan mandiri pengguna dengan A AWS Transfer Family dan. AWS Lambda

catatan

AWS Transfer Family menerima kunci RSA, ECDSA, dan ED25519.

Bagian ini juga mencakup cara membuat dan mengelola kunci Pretty Good Privacy (PGP).

Algoritma yang didukung untuk kunci pengguna dan server

Algoritma kunci berikut didukung untuk pasangan kunci pengguna dan server di dalamnya. AWS Transfer Family

  • Untuk ED25519: ssh-ed25519

  • Untuk RSA:

    • rsa-sha2-256

    • rsa-sha2-512

  • Untuk ECDSA:

    • ecdsa-sha2-nistp256

    • ecdsa-sha2-nistp384

    • ecdsa-sha2-nistp521

catatan

Kami mendukung ssh-rsa SHA1 untuk kebijakan keamanan lama kami. Lihat perinciannya di Algoritma kriptografi.

Hasilkan kunci SSH untuk pengguna yang dikelola layanan

Anda dapat mengatur server Anda untuk mengautentikasi pengguna menggunakan metode otentikasi terkelola layanan, tempat nama pengguna dan kunci SSH disimpan dalam layanan. Kunci SSH publik pengguna diunggah ke server sebagai properti pengguna. Kunci ini digunakan oleh server sebagai bagian dari proses otentikasi berbasis kunci standar. Setiap pengguna dapat memiliki beberapa kunci SSH publik pada file dengan server individual. Untuk batasan jumlah kunci yang dapat disimpan per pengguna, lihat AWS Transfer Family titik akhir dan kuota di. Referensi Umum Amazon Web

Sebagai alternatif metode otentikasi terkelola layanan, Anda dapat mengautentikasi pengguna menggunakan penyedia identitas kustom, atau. AWS Directory Service for Microsoft Active Directory Untuk informasi selengkapnya, lihat Bekerja dengan penyedia identitas khusus atau Menggunakan AWS Directory Service untuk Microsoft Active Directory.

Server hanya dapat mengautentikasi pengguna menggunakan satu metode (layanan dikelola, layanan direktori, atau penyedia identitas kustom), dan metode itu tidak dapat diubah setelah server dibuat.

Membuat kunci SSH di macOS, Linux, atau Unix

Pada sistem operasi macOS, Linux, atau Unix, Anda menggunakan ssh-keygen perintah untuk membuat kunci publik SSH dan kunci pribadi SSH yang juga dikenal sebagai key pair.

Untuk membuat kunci SSH pada sistem operasi macOS, Linux, atau Unix
  1. Pada sistem operasi macOS, Linux, atau Unix, buka terminal perintah.

  2. AWS Transfer Family menerima kunci berformat RSA-, ECDSA-, dan ED25519. Pilih perintah yang sesuai berdasarkan jenis pasangan kunci yang Anda hasilkan.

    catatan

    Dalam contoh berikut, kami tidak menentukan frasa sandi: dalam hal ini, alat meminta Anda untuk memasukkan frasa sandi Anda dan kemudian mengulanginya untuk memverifikasi. Membuat frasa sandi menawarkan perlindungan yang lebih baik untuk kunci pribadi Anda, dan mungkin juga meningkatkan keamanan sistem secara keseluruhan. Anda tidak dapat memulihkan frasa sandi Anda: jika Anda lupa, Anda harus membuat kunci baru.

    Namun, jika Anda membuat kunci host server, Anda harus menentukan frasa sandi kosong, dengan menentukan -N "" opsi dalam perintah (atau dengan menekan Enter dua kali saat diminta), karena server Transfer Family tidak dapat meminta kata sandi saat start-up.

    • Untuk menghasilkan key pair RSA 4096-bit:

      ssh-keygen -t rsa -b 4096 -f key_name
    • Untuk menghasilkan pasangan kunci ECDSA 521-bit (ECDSA memiliki ukuran bit 256, 384, dan 521):

      ssh-keygen -t ecdsa -b 521 -f key_name
    • Untuk menghasilkan key pair ED25519:

      ssh-keygen -t ed25519 -f key_name
    catatan

    key_nameadalah nama file key pair SSH.

    Berikut ini menunjukkan contoh ssh-keygen output.

    ssh-keygen -t rsa -b 4096 -f key_name Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in key_name. Your public key has been saved in key_name.pub. The key fingerprint is: SHA256:8tDDwPmanTFcEzjTwPGETVWOGW1nVz+gtCCE8hL7PrQ bob.amazon.com The key's randomart image is: +---[RSA 4096]----+ | . ....E | | . = ... | |. . . = ..o | | . o + oo = | | + = .S.= * | | . o o ..B + o | | .o.+.* . | | =o*+*. | | ..*o*+. | +----[SHA256]-----+
    catatan

    Ketika Anda menjalankan ssh-keygen perintah seperti yang ditunjukkan sebelumnya, itu menciptakan kunci publik dan pribadi sebagai file dalam direktori saat ini.

    Key pair SSH Anda sekarang siap digunakan. Ikuti langkah 3 dan 4 untuk menyimpan kunci publik SSH untuk pengguna yang dikelola layanan Anda. Pengguna ini menggunakan kunci ketika mereka mentransfer file pada endpoint server Transfer Family.

  3. Arahkan ke key_name.pub file dan buka.

  4. Salin teks dan tempel di kunci publik SSH untuk pengguna yang dikelola layanan.

    1. Buka AWS Transfer Family konsol di https://console.aws.amazon.com/transfer/, lalu pilih Server dari panel navigasi.

    2. Pada halaman Server, pilih ID Server untuk server yang berisi pengguna yang ingin Anda perbarui.

    3. Pilih pengguna yang Anda tambahkan kunci publiknya.

    4. Di panel kunci publik SSH, pilih Tambahkan kunci publik SSH.

      AWS Transfer Family Konsol, menampilkan detail pengguna untuk pengguna yang dipilih.
    5. Tempelkan teks kunci publik yang Anda hasilkan ke dalam kotak teks kunci publik SSH, lalu pilih Tambah kunci.

      AWS Transfer Family Konsol, menampilkan halaman Add key untuk menambahkan kunci publik.

      Kunci baru tercantum di panel kunci publik SSH.

      AWS Transfer Family Konsol, menampilkan kunci publik yang baru ditambahkan di bagian kunci publik SSH.

Membuat kunci SSH di Microsoft Windows

Windows menggunakan format SSH key pair yang sedikit berbeda. Kunci publik harus dalam PUB format, dan kunci pribadi harus dalam PPK format. Di Windows, Anda dapat menggunakan PuttyGen untuk membuat key pair SSH dalam format yang sesuai. Anda juga dapat menggunakan PuttyGen untuk mengonversi kunci pribadi yang dihasilkan ssh-keygen menggunakan ke file. .ppk

catatan

Jika Anda menyajikan WinSCP dengan file kunci pribadi yang tidak .ppk dalam format, klien itu menawarkan untuk mengubah kunci .ppk menjadi format untuk Anda.

Untuk tutorial tentang membuat kunci SSH dengan menggunakan PuttyGen di Windows, lihat situs web SSH.com.

Mengkonversi kunci publik SSH2 ke format PEM

AWS Transfer Family hanya menerima kunci publik berformat PEM. Jika Anda memiliki kunci publik SSH2, Anda perlu mengonversinya. Kunci publik SSH2 memiliki format berikut:

---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20160402" AAAAB3NzaC1yc2EAAAABJQAAAgEAiL0jjDdFqK/kYThqKt7THrjABTPWvXmB3URI : : ---- END SSH2 PUBLIC KEY ----

Kunci publik PEM memiliki format berikut:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAA...

Jalankan perintah berikut untuk mengonversi kunci publik berformat SSH2 menjadi kunci publik berformat PEM. Ganti ssh2-key dengan nama kunci SSH2 Anda, dan pem-key dengan nama kunci PEM Anda.

ssh-keygen -i -f ssh2-key.pub > PEM-key.pub

Putar tombol SSH

Untuk keamanan, kami merekomendasikan praktik terbaik untuk memutar kunci SSH Anda. Biasanya, rotasi ini ditentukan sebagai bagian dari kebijakan keamanan dan diimplementasikan dalam beberapa cara otomatis. Tergantung pada tingkat keamanan, untuk komunikasi yang sangat sensitif, key pair SSH mungkin hanya digunakan sekali. Melakukan hal ini menghilangkan risiko apa pun karena kunci yang disimpan. Namun, jauh lebih umum untuk menyimpan kredensyal SSH untuk jangka waktu tertentu dan menetapkan interval yang tidak menempatkan beban yang tidak semestinya pada pengguna. Interval waktu tiga bulan adalah hal biasa.

Ada dua metode yang digunakan untuk melakukan rotasi kunci SSH:

  • Di konsol, Anda dapat mengunggah kunci publik SSH baru dan menghapus kunci publik SSH yang ada.

  • Dengan menggunakan API, Anda dapat memperbarui pengguna yang ada dengan menggunakan DeleteSshPublicKeyAPI untuk menghapus kunci publik Secure Shell (SSH) pengguna dan ImportSshPublicKeyAPI untuk menambahkan kunci publik Secure Shell (SSH) baru ke akun pengguna.

Console
Untuk melakukan rotasi kunci di konsol
  1. Buka AWS Transfer Family konsol di https://console.aws.amazon.com/transfer/.

  2. Arahkan ke halaman Server.

  3. Pilih pengenal di kolom ID Server untuk melihat halaman Detail Server.

  4. Di bawah Pengguna, pilih kotak centang pengguna yang kunci publik SSH yang ingin Anda putar, lalu pilih Tindakan, lalu pilih Tambah kunci untuk melihat halaman Tambah kunci.

    atau

    Pilih nama pengguna untuk melihat halaman Detail pengguna, lalu pilih Tambahkan kunci publik SSH untuk melihat halaman Tambah kunci.

  5. Masukkan kunci publik SSH baru dan pilih Tambah kunci.

    penting

    Format kunci publik SSH tergantung pada jenis kunci yang Anda hasilkan.

    • Untuk kunci RSA, formatnya adalahssh-rsa string.

    • Untuk tombol ED25519, formatnya adalah. ssh-ed25519 string

    • Untuk kunci ECDSA, kunci dimulai denganecdsa-sha2-nistp256,ecdsa-sha2-nistp384, atauecdsa-sha2-nistp521, tergantung pada ukuran kunci yang Anda hasilkan. String awal kemudian diikuti olehstring, mirip dengan jenis kunci lainnya.

    Anda dikembalikan ke halaman detail Pengguna, dan kunci publik SSH baru yang baru saja Anda masukkan muncul di bagian kunci publik SSH.

  6. Pilih kotak centang kunci lama yang ingin Anda hapus dan kemudian pilih Hapus.

  7. Konfirmasikan operasi penghapusan dengan memasukkan katadelete, lalu pilih Hapus.

API
Untuk melakukan rotasi kunci menggunakan API
  1. Pada sistem operasi macOS, Linux, atau Unix, buka terminal perintah.

  2. Ambil kunci SSH yang ingin Anda hapus dengan memasukkan perintah berikut. Untuk menggunakan perintah ini, ganti serverID dengan ID server untuk server Transfer Family Anda, dan ganti username dengan nama pengguna Anda.

    aws transfer describe-user --server-id='serverID' --user-name='username'

    Perintah mengembalikan rincian tentang pengguna. Salin isi "SshPublicKeyId": bidang. Anda harus memasukkan nilai ini nanti dalam prosedur ini.

    "SshPublicKeys": [ { "SshPublicKeyBody": "public-key", "SshPublicKeyId": "keyID", "DateImported": 1621969331.072 } ],
  3. Selanjutnya, impor kunci SSH baru untuk pengguna Anda. Di perintah , masukkan perintah berikut. Untuk menggunakan perintah ini, ganti serverID dengan ID server untuk server Transfer Family Anda, ganti username dengan nama pengguna Anda, dan ganti public-key dengan sidik jari kunci publik baru Anda.

    aws transfer import-ssh-public-key --server-id='serverID' --user-name='username' --ssh-public-key-body='public-key'

    Jika perintah berhasil, tidak ada output yang dikembalikan.

  4. Terakhir, hapus kunci lama dengan menjalankan perintah berikut. Untuk menggunakan perintah ini, ganti serverID dengan ID server untuk server Transfer Family Anda, ganti username dengan nama pengguna Anda, dan ganti keyID-from-step-2 dengan nilai ID kunci yang Anda salin di langkah 2 prosedur ini

    aws transfer delete-ssh-public-key --server-id='serverID' --user-name='username' --ssh-public-key-id='keyID-from-step-2'
  5. (Opsional) Untuk mengonfirmasi bahwa kunci lama tidak ada lagi, ulangi langkah 2.

Menghasilkan dan mengelola kunci PGP

Anda dapat menggunakan dekripsi Pretty Good Privacy (PGP) dengan file yang diproses Transfer Family dengan alur kerja. Untuk menggunakan dekripsi dalam langkah alur kerja, berikan kunci PGP.

Blog AWS penyimpanan memiliki posting yang menjelaskan cara mendekripsi file tanpa menulis kode apa pun menggunakan alur kerja Transfer Family Managed, Enkripsi dan dekripsi file dengan PGP dan. AWS Transfer Family

Hasilkan kunci PGP

Operator yang Anda gunakan untuk menghasilkan kunci PGP Anda bergantung pada sistem operasi Anda dan versi perangkat lunak generasi kunci yang Anda gunakan.

Jika Anda menggunakan Linux atau Unix, gunakan penginstal paket Anda untuk menginstal. gpg Tergantung pada distribusi Linux Anda, salah satu perintah berikut akan bekerja untuk Anda.

sudo yum install gnupg
sudo apt-get install gnupg

Untuk Windows atau macOS, Anda dapat mengunduh apa yang Anda butuhkan dari https://gnupg.org/download/.

Setelah Anda menginstal perangkat lunak generator kunci PGP Anda, Anda menjalankan gpg --gen-key perintah gpg --full-gen-key or untuk menghasilkan key pair.

catatan

Jika Anda menggunakan GnuPG versi 2.3.0 atau yang lebih baru, Anda harus menjalankannya. gpg --full-gen-key Ketika diminta untuk jenis kunci yang akan dibuat, pilih RSA atau ECC. Namun, jika Anda memilih ECC, pastikan untuk memilih salah satu NIST atau BrainPool untuk kurva elips. Jangan memilihCurve 25519.

Algoritma yang didukung untuk pasangan kunci PGP

Kami mendukung algoritma berikut untuk pasangan kunci PGP:

  • RSA

  • Elgamal

  • ECC:

    • NIST

    • BrainPool

catatan

Kami tidak mendukung kunci CCurve25519.

gpgSubperintah yang berguna

Berikut ini adalah beberapa subperintah yang berguna untukgpg:

  • gpg --help— Perintah ini mencantumkan opsi yang tersedia dan mungkin menyertakan beberapa contoh.

  • gpg --list-keys— Perintah ini mencantumkan detail untuk semua pasangan kunci yang telah Anda buat.

  • gpg --fingerprint— Perintah ini mencantumkan detail untuk semua pasangan kunci Anda, termasuk sidik jari masing-masing tombol.

  • gpg --export -a user-name— Perintah ini mengekspor bagian kunci publik dari kunci untuk user-name yang digunakan saat kunci dihasilkan.

Kelola kunci PGP

Untuk mengelola kunci PGP Anda, gunakan. AWS Secrets Manager

catatan

Nama rahasia Anda termasuk ID server Transfer Family Anda. Ini berarti Anda seharusnya sudah mengidentifikasi atau membuat server sebelum Anda dapat menyimpan informasi kunci PGP Anda. AWS Secrets Manager

Jika Anda ingin menggunakan satu kunci dan frasa sandi untuk semua pengguna Anda, Anda dapat menyimpan informasi blok kunci PGP di bawah nama rahasiaaws/transfer/server-id/@pgp-default, di mana ID untuk server Transfer server-id Family Anda. Transfer Family menggunakan kunci default ini jika tidak ada kunci yang user-name cocok dengan pengguna yang menjalankan alur kerja.

Anda dapat membuat kunci untuk pengguna tertentu. Dalam hal ini, format untuk nama rahasia adalahaws/transfer/server-id/user-name, di mana user-name cocok dengan pengguna yang menjalankan alur kerja untuk server Transfer Family.

catatan

Anda dapat menyimpan maksimal 3 kunci pribadi PGP, per server Transfer Family, per pengguna.

Untuk mengkonfigurasi kunci PGP untuk digunakan dengan dekripsi
  1. Bergantung pada versi GPG yang Anda gunakan, jalankan salah satu perintah berikut untuk menghasilkan key pair PGP yang tidak menggunakan algoritma enkripsi Curve 25519.

    • Jika Anda menggunakan GnuPG versi 2.3.0 atau yang lebih baru, jalankan perintah berikut:

      gpg --full-gen-key

      Anda dapat memilihRSA, atau, jika Anda memilihECC, Anda dapat memilih salah satu NIST atau BrainPool untuk kurva elips. Jika Anda gpg --gen-key menjalankannya, Anda membuat key pair yang menggunakan algoritma enkripsi ECC Curve 25519, yang saat ini tidak kami dukung untuk kunci PGP.

    • Untuk versi GnuPG sebelum 2.3.0, Anda dapat menggunakan perintah berikut, karena RSA adalah jenis enkripsi default.

      gpg --gen-key
    penting

    Selama proses pembuatan kunci, Anda harus memberikan frasa sandi dan alamat email. Pastikan untuk mencatat nilai-nilai ini. Anda harus memberikan frasa sandi ketika Anda memasukkan detail kunci ke dalam prosedur ini AWS Secrets Manager nanti. Dan Anda harus memberikan alamat email yang sama untuk mengekspor kunci pribadi di langkah berikutnya.

  2. Jalankan perintah berikut untuk mengekspor kunci pribadi. Untuk menggunakan perintah ini, ganti private.pgp dengan nama file untuk menyimpan blok kunci pribadi, dan marymajor@example.com dengan alamat email yang Anda gunakan saat Anda membuat key pair.

    gpg --output private.pgp --armor --export-secret-key marymajor@example.com
  3. Gunakan AWS Secrets Manager untuk menyimpan kunci PGP Anda.

    1. Masuk ke AWS Management Console dan buka AWS Secrets Manager konsol di https://console.aws.amazon.com/secretsmanager/.

    2. Pada panel navigasi kiri, pilih Rahasia.

    3. Pada halaman Rahasia, pilih Simpan rahasia baru.

    4. Pada halaman Choose secret type, untuk Secret type, pilih Other type of secret.

    5. Di bagian pasangan kunci/Nilai, pilih tab kunci/Nilai.

      • Kunci — MasukkanPGPPrivateKey.

        catatan

        Anda harus memasukkan PGPPrivateKey string dengan tepat: jangan menambahkan spasi sebelum atau di antara karakter.

      • nilai — Tempelkan teks kunci pribadi Anda ke bidang nilai. Anda dapat menemukan teks kunci pribadi Anda dalam file (misalnya,private.pgp) yang Anda tentukan saat Anda mengekspor kunci Anda sebelumnya dalam prosedur ini. Kuncinya dimulai dengan -----BEGIN PGP PRIVATE KEY BLOCK----- dan diakhiri dengan-----END PGP PRIVATE KEY BLOCK-----.

        catatan

        Pastikan bahwa blok teks hanya berisi kunci pribadi dan tidak mengandung kunci publik juga.

    6. Pilih Tambahkan baris dan di bagian pasangan kunci/Nilai, pilih tab kunci/Nilai.

      • Kunci — MasukkanPGPPassphrase.

        catatan

        Anda harus memasukkan PGPPassphrase string dengan tepat: jangan menambahkan spasi sebelum atau di antara karakter.

      • value — Masukkan kata sandi yang Anda gunakan saat membuat key pair PGP Anda.

      AWS Secrets Manager Konsol, menampilkan kunci dan nilai yang Anda masukkan untuk mengelola kunci PGP Anda.
      catatan

      Anda dapat menambahkan hingga 3 set kunci dan frasa sandi. Untuk menambahkan set kedua, tambahkan dua baris baru, dan masukkan PGPPrivateKey2 dan PGPPassphrase2 untuk kunci, dan tempel di kunci pribadi dan frasa sandi lainnya. Untuk menambahkan set ketiga, nilai kunci harus PGPPrivateKey3 danPGPPassphrase3.

    7. Pilih Selanjutnya.

    8. Pada halaman Konfigurasi rahasia, masukkan nama dan deskripsi untuk rahasia Anda.

      • Jika Anda membuat kunci default, yaitu kunci yang dapat digunakan oleh pengguna Transfer Family, masukkanaws/transfer/server-id/@pgp-default. Ganti server-id dengan ID server yang berisi alur kerja yang memiliki langkah dekripsi.

      • Jika Anda membuat kunci untuk digunakan oleh pengguna Transfer Family tertentu, masukkanaws/transfer/server-id/user-name. Ganti server-id dengan ID server yang berisi alur kerja yang memiliki langkah dekripsi, dan ganti user-name dengan nama pengguna yang menjalankan alur kerja. user-nameIni disimpan di penyedia identitas yang digunakan server Transfer Family.

    9. Pilih Berikutnya dan terima default pada halaman Konfigurasi rotasi. Lalu pilih Selanjutnya.

    10. Pada halaman Review, pilih Store untuk membuat dan menyimpan rahasia.

Tangkapan layar berikut menunjukkan detail untuk pengguna marymajor untuk server Transfer Family tertentu. Contoh ini menunjukkan tiga kunci dan frasa sandi yang sesuai.

AWS Secrets Manager Konsol, menampilkan halaman detail rahasia dengan tiga kunci dan frasa sandi untuk server dan pengguna Transfer Family.

Klien PGP yang didukung

Klien berikut telah diuji dengan Transfer Family dan dapat digunakan untuk menghasilkan kunci PGP, dan untuk mengenkripsi file yang ingin Anda dekripsi dengan alur kerja.

  • GPG4win + Kleopatra.

    catatan

    Saat Anda memilih Sign/Encrypt Files, pastikan untuk menghapus pilihan untuk Sign as: saat ini kami tidak mendukung penandatanganan untuk file terenkripsi.

    Opsi Kleopatra untuk menandatangani dan mengenkripsi file. Opsi untuk Masuk sebagai dihapus, dan opsi untuk Enkripsi untuk saya dipilih.

    Jika Anda menandatangani file terenkripsi dan mencoba mengunggahnya ke server Transfer Family dengan alur kerja dekripsi, Anda menerima kesalahan berikut:

    Encrypted file with signed message unsupported
  • Versi GnuPG utama: 2.4, 2.3, 2.2, 2.0, dan 1.4.

Perhatikan bahwa klien PGP lain mungkin bekerja juga, tetapi hanya klien yang disebutkan di sini yang telah diuji dengan Transfer Family.