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
- Pemahaman dasar tentang Skrip Shell.
- Akun AWS (Buat jika Anda belum memilikinya).
- 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
- Buat skrip dan pasangan kunci privat-publik.
- 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.pubssh -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.
Cara Menguji Kecepatan Pemuatan Situs Web di Linux Apa itu Cert-Manager dan cara menyiapkan Cert-Manager untuk sertifikat SSL di Kubernetes Cluster di AWS menggunakan HelmLinux