GNU/Linux >> Belajar Linux >  >> Linux

Cara membuat pengguna di instance Linux EC2 di AWS dan menambahkan kunci publik ke dalamnya menggunakan skrip shell

Membuat pengguna dan menambahkan kunci publik ke dalamnya bisa sangat membosankan. Pada artikel ini, kita akan melihat bagaimana proses ini dapat diotomatisasi menggunakan skrip shell yang dapat membantu kita menghindari kesalahan manusia yang dapat timbul jika kita melakukan tugas secara manual.

Prasyarat

  1. Pemahaman dasar tentang Skrip Shell.
  2. Akun AWS (Buat jika Anda belum memilikinya).
  3. Instans EC2 dengan pengguna yang memiliki akses sudo (Klik di sini untuk mempelajari cara membuat instans EC2 jika Anda tidak memilikinya atau jika Anda ingin mempelajarinya )

Apa yang akan kita lakukan

  1. Buat skrip dan pasangan kunci privat-publik.
  2. Buat pengguna menggunakan skrip.

Buat skrip dan pasangan kunci privat-publik

Buat skrip dengan kode berikut di dalamnya. Anda dapat menemukan kode yang sama di repo Github saya pada tautan berikut.

Link Github: https://github.com/shivalkarrahul/DevOps/blob/master/aws/shell-scripts/aws-ec2-create-user-add-public-key/provide-access.sh
File: provide-access.sh
helpFunction(){ echo "" printf "\033[1;32mUsage:$0 -K  -U  -I 
 -u  -k <\"public-key-string-shared-by-the-user\">" echo "" echo -e "\t-K \".pem kunci server tempat pengguna baru dibuat\ "" echo -e "\t-U Nama Pengguna server tempat pengguna baru dibuat" echo -e "\t-I IP server tempat pengguna baru dibuat " echo -e "\t-u pengguna yang akan dibuat di server internal" echo -e "\t-k \"string kunci publik yang akan ditambahkan dibagikan oleh pengguna\"" echo -e "Masukkan Kunci Publik dalam tanda kutip ganda" echo -e "mis." echo "./provide-access.sh -U ubuntu -K /Users/cloudcover/Documents/Rahul/access/rahuls.pem -I 192.168.134.100 -u rahul -k \"ssh-rsa Z1rbx6/F/ZntfkvKzX6e82oYOOLb9QtTu4IO+W560 + afjp1xLOYqWKeEsZycq0iyHX5herNWxorLU3gGnwGSABCb + 62yP3eaESMMHMR91OeDsxeLL41ABANofMROQ8yDjNcYVUxjKWyzNzuJxgnN5KngwkUOWHGbCFmHUsz1WVuWA + rhhk1CPZFywUdsDeGR / DxD + oNKGvaKGIQuDqK1vY5GiLg0N + OvanTPbLper3 / Z5A5d62fRF6 + mensZGsKW543 kunci-nama \ "" echo -e "\ 033 [0m" warna #reset exit naskah 1 # keluar setelah mencetak bantuan} sementara getopts "I:K:U:u:k:" optdo case "$opt" di K ) internalServerPemKey="$OPTARG";; U ) internalServerUser="$OPTARG";; saya ) internalServerIP="$OPTARG";; u ) namapengguna="$OPTARG";; k ) keyString="$OPTARG";; ? ) fungsi bantuan;; # Cetak helpFunction jika parameter tidak ada esacdone# Cetak helpFunction jika parameter kosong jika [ -z "$internalServerIP" ] || [ -z "$internalServerPemKey" ] || [ -z "$internalServerUser" ] || [ -z "$userName" ] || [ -z "$keyString" ]lalu printf "\033[1;31m" echo "Beberapa atau semua parameter kosong"; helpFunctionfi# Mulai skrip jika semua parameter benarprintf "\033[1;33m--------------------------------- ---------------------------------Sebelum ssh"echo -e "\033[0m" #reset colorecho ". pem kunci dari server tempat pengguna baru dibuat :$internalServerPemKey"echo "Nama Pengguna server tempat pengguna baru dibuat :$internalServerUser"echo "IP server tempat pengguna baru dibuat :$internalServerIP"echo "pengguna yang akan dibuat di server internal :$userName"echo "string kunci publik yang akan ditambahkan dibagikan oleh pengguna :$keyString"printf "\033[1;31mLogging ke:"$internalServerPemKey" "$internalServerUser "@"$internalServerIP"\033[0m\n"ssh -i "$internalServerPemKey" "$internalServerUser"@"$internalServerIP" < \"$internalServerIP \" <---" sudo useradd -m $userName sleep 2 echo "Mengubah pengguna menjadi \"$userName\"" sudo -i -u $userName bash <> .ssh/authorized_keys echo "Isi .ssh/authorized_keys" cat .ssh /authorized_keys printf "\033[1;31mKeluar dari ---> "$internalServerPemKey" "$internalServerUser"@"$internalServerIP"\033[0m\n" #echo "Pengguna yang ada ---> $userName"EOFHERE 

Buat pasangan kunci untuk pengguna yang akan dibuat. Di sini, saya akan menyimpan kunci ini di /tmp/

ssh-keygen

ls /tmp/id_rsa*

Buat pengguna menggunakan skrip

Sekarang, mari kita buat pengguna dengan perintah berikut. Anda perlu mengubah nilai pada skrip dengan yang valid untuk Anda. Jalankan perintah berikut dari sistem linux lokal Anda.

Sebelum Anda menjalankan skrip, ubah izinnya

chmod 744 provide-access.sh
./provide-access.sh -U ubuntu -K ~/Downloads/howtoforge-test.pem -I ec2-15-236-64-128.eu-west-3.compute.amazonaws.com -u rahul -k "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzS60i + fPFEYMbA1w8dLOFK2EAV + vFtlckSU 
5 + DGxtLHp3smpAxTDkKYJ33bM9Cs6toMDD0HITAH6VRyrgJ4V + Z4EpO6w8kHp3g2Fro5b4X2VX4GWsVdmkLkj0KbUhbd2sKTx / O2x + wNlxT7cUvr0ugii9FIXlXLLjwLsw47bEUNSIhwJB + x7u8tfOc00IBzhghCU9DjfGzMNxWdwpWg2GsAoRWQAT1YGO3laqPpxSVN6RKAzsTJ
gSar7bwJsjEtiCb7 + of95SIR / LKP / e1hpsbuDUpc94mTAkde88pFPE / 799w + YnbUwaj + 1Y8e9R1QRjbs9Xh + b2wAgaAlMTPEFh [email protected]"

Di sini,

  • -U =ubuntu =Pengguna dengan akses sudo untuk masuk ke instance EC2.
  • -K =~/Downloads/howtoforge-test.pem = Ureate untuk login ke instance EC2.
  • -I =ec2-15-236-64-128.eu-west-3.compute.amazonaws.com = IP instance EC2.
  • -u =rahul =Pengguna yang akan dibuat
  • -k =Kunci publik pengguna yang akan dibuat.

Nilai-nilai ini akan bervariasi untuk Anda. Tambahkan nilai yang valid untuk Anda.

Anda dapat melihat bahwa pengguna telah dibuat.

Sekarang, Anda dapat masuk ke instans EC2 untuk memeriksa apakah pengguna telah dibuat atau belum.

ssh -i ~/Downloads/howtoforge-test.pem [dilindungi email]
cat /etc/passwd | grep rahul

Anda sekarang dapat mencoba masuk ke server menggunakan pengguna, yaitu rahul, yang baru saja kita buat.

Sebelum itu, ubah izin kunci pribadi yang akan digunakan untuk mengautentikasi ke server.

chmod 400 /tmp/id_rsa.pub
ssh -i /tmp/id_rsa.pub [dilindungi email]

Pada tangkapan layar di atas, Anda dapat melihat bahwa kami dapat masuk ke server menggunakan pengguna yang kami buat.

Juga, periksa kunci yang kami tambahkan ke pengguna. Anda akan menemukan kunci publik yang kami berikan ke skrip telah ditambahkan ke server.

Kesimpulan

Pada artikel ini, kami melihat skrip untuk mengotomatiskan proses pembuatan pengguna di instance Ubuntu EC2 dan menambahkan kunci publik ke dalamnya.

Otomatisasi ini dapat membantu meminimalkan upaya yang diperlukan untuk membuat pengguna secara manual dan menambahkan kunci publik ke dalamnya.


Linux
  1. Buat instans EC2 di AWS menggunakan Terraform

  2. Cara Membuat (dan Menerbitkan) Kunci PGP di Linux Menggunakan GUI

  3. Cara membuat user di linux menggunakan python

  1. Bagaimana Membandingkan Angka dan String di Linux Shell Script

  2. Cara Mengatur/Membuat Variabel Lingkungan dan Shell di Linux

  3. Bagaimana Cara Membuat Animasi Rotasi Menggunakan Shell Script?

  1. Cara membuat instans RDS di AWS menggunakan Terraform

  2. Cara membuat dan menghapus grup pengguna di Linux

  3. Cara membuat Pengguna Linux Menggunakan Ansible