EC2: beberapa kunci ssh sebagai contoh?

12

Apakah mungkin untuk membuat lebih dari satu kunci pribadi ke SSH menjadi instance EC2? Apa praktik terbaik umum untuk ini? Kami memiliki banyak pengguna yang perlu SSH ke server dan mendistribusikan satu kunci saja tidak berfungsi dengan baik. Ini tidak memungkinkan kami untuk menghapus pengguna agar tidak dapat SSH ke server kecuali kami mengubah kunci dan mendistribusikan kembali.

imajinatif
sumber
Saat Anda melakukan manajemen kunci SSH untuk sebuah tim, mungkin yang terbaik adalah melihat alat khusus seperti Userify atau SSH UKM (Penafian: Saya bekerja untuk Userify).
Jamieson Becker

Jawaban:

5

Benar; Anda cukup menempatkan semua kunci publik yang relevan ke dalam gambar dan Anda harus segera pergi. Saya lebih suka menggunakan sistem manajemen konfigurasi untuk mengelola kunci SSH; dengan cara itu cukup sepele untuk mencabut akses pengguna bahkan pada sistem yang sedang berjalan. Ada juga jauh lebih banyak ... katakanlah "imajinatif" ... cara menangani ini, seperti menyimpan semua kunci SSH Anda di LDAP, yang memusatkan kunci SSH seperti kredensial lainnya.

womble
sumber
2
Ketika Anda mulai ingin menyimpan kunci SSH di LDAP, inilah saatnya untuk belajar tentang Kerberos.
84104
1
Saya telah menggunakan Kerberos; secara pribadi, saya pikir itu solusi dalam mencari masalah, dan solusi yang agak rewel dan menjengkelkan.
womble
2
@ Ash: Pertanyaan masuk pertanyaan, bukan komentar.
womble
1
Saya akan mengabaikan komentar di atas - tetapi bagi siapa pun yang baru di situs saya merasa saya harus menjelaskan bahwa jika Anda memiliki komentar yang terkait dengan pelaksanaan jawaban, klarifikasi atau kesalahpahaman yang diberikan, ini harus dibuat jelas. di komentar, sehingga OP dapat mengedit jawaban untuk mengklarifikasi kebingungan yang mungkin terjadi.
Mazatec
2
Tidak, Anda harus mengajukan pertanyaan klarifikasi dalam komentar jika jawabannya tidak menjawab pertanyaan yang awalnya diajukan. Jika Anda ingin mengajukan pertanyaan baru berdasarkan konten jawaban, Anda harus menggunakan tombol "Ajukan Pertanyaan" yang besar di sudut kanan atas halaman untuk mengajukan pertanyaan baru. Ini adalah situs tanya jawab, bukan forum diskusi.
womble
6

Anda juga dapat menggunakan mekanisme ssh standar. Pendekatan terbaik adalah jika pengguna menjalankan mesin mereka ssh-keygenuntuk menghasilkan pasangan kuncinya. Kemudian mereka mengirim Anda ~/.ssh/id_rsa.pub(atau id_dsa.pub, tergantung pada algoritma yang dipilih) dan Anda menambahkan kontennya ke .ssh/authorized_keyshost tujuan di direktori home dari akun pengguna yang seharusnya dapat diakses. Mungkin ada lebih dari satu kunci dalam file. Satu per baris. Dan itu saja! Kunci publik yang sama (id_rsa.pub) dapat digunakan pada sejumlah host - itu akan selalu mengidentifikasi pengguna.

Anda juga dapat melakukannya dengan cara lain - Anda menjalankan ssh-keygen dan memposting ~ / .ssh / id_rsa (atau id_dsa) kepada pengguna. Dan pengguna menyimpan file ke ~ / .ssh / id_rsa. Hanya perlu ingat untuk mengubah izin ke 600 (-rw -------) dari file itu, jika tidak ssh tidak akan menerimanya. Ini jelas kurang aman, karena kunci pribadi mungkin didistribusikan melalui email.

Itu juga bisa dilakukan di Putty dengan Putty.

baiklah
sumber
1

Cara yang lebih sederhana adalah seperti yang ditunjukkan di bawah ini.

Untuk pengguna Linux / Mac:

  1. Untuk membuat kunci Publik dan Pribadi gunakan perintah berikut: $ ssh-keygen -t rsa -b 4096

  2. Unggah kunci publik ke folder di ember S3 Anda. Misalnya: S3> MyBucket> Keypair

  3. Simpan dan amankan kunci pribadi Anda.

Untuk pengguna Windows:

  1. Gunakan puttygen untuk menghasilkan kunci.
  2. Ikuti DigitalOcean untuk membuat kunci SSH.
  3. Unggah kunci publik ke S3> MyBucket> Keypair
  4. Simpan dan amankan kunci pribadi Anda.

Langkah-langkah berikut ini penting selama peluncuran AMI Linux.

  1. Pastikan peran IAM memiliki peran yang dibuat dengan kebijakan AmazonS3FullAccess. Ini memungkinkan instance untuk mengambil peran untuk mengakses bucket S3. Ini diperlukan untuk membaca kunci publik dari S3 dan menyalinnya ke profil pengguna

  2. Tambahkan kode berikut di bawah bagian data pengguna di Konfigurasi detail Instance> Rincian Lanjutan (sebagai Teks):

    #!/bin/bash
    usermod user 1
    usermod -aG wheel user1
    mkdir /home/user1/.ssh/
    aws s3 cp s3://MyBucket    /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
    
    useradd user2
    usermod -aG wheel user2
    mkdir /home/user2/.ssh/
    aws s3 cp s3://MyBucket   /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
    
    sudo -i 
    echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    
    yum update -y
    

Pengaturan ini menciptakan User1 dan User2 dan menambahkannya ke pengguna sudo . Perintah aws s3 cp menyalin kunci publik pengguna dari folder S3 ke mereka .ssh/authorized_keys path. Bagian terakhir adalah menjalankan perintah sebagai admin tanpa perlu kata sandi.

Ada banyak peningkatan keamanan yang dapat direkomendasikan di sini. Meskipun tidak secara eksplisit digunakan dalam contoh ini, membatasi akses bucket S3 ke bucket tertentu dan mengetahui implikasi keamanan dari menonaktifkan penggunaan kata sandi di sudo, adalah beberapa hal yang dapat disorot. Gunakan dengan bijak berdasarkan kebutuhan khusus Anda.

Vijay Shreenivos
sumber