Cách tạo người dùng trên phiên bản Linux EC2 trên AWS và thêm khóa công khai vào đó bằng cách sử dụng tập lệnh shell

theanh

Administrator
Nhân viên
Việc tạo người dùng và thêm khóa công khai vào đó có thể rất tẻ nhạt. Trong bài viết này, chúng ta sẽ xem cách thức quá trình này có thể được tự động hóa bằng cách sử dụng một tập lệnh shell có thể giúp chúng ta tránh được các lỗi của con người có thể phát sinh nếu chúng ta thực hiện tác vụ theo cách thủ công.

Điều kiện tiên quyết​

  1. Hiểu biết cơ bản về Shell Script.
  2. Tài khoản AWS (Tạonếu bạn chưa có).
  3. EC2 Instance với người dùng có quyền truy cập sudo (Nhấp vào đây để tìm hiểu cách tạo EC2 instance nếu bạn chưa có hoặc nếu bạn muốn tìm hiểu)

Chúng ta sẽ làm gì​

  1. Tạo một tập lệnh và một cặp khóa công khai-riêng tư.
  2. Tạo người dùng bằng tập lệnh.

Tạo một tập lệnh và một khóa công khai-riêng tư cặp​

Tạo một tập lệnh có chứa đoạn mã sau. Bạn có thể tìm thấy cùng một mã trên kho lưu trữ Github của tôi theo liên kết sau.
Mã:
Liên kết Github:[URL=https://github.com/shivalkarrahul/DevOps/blob/master/aws/shell-scripts/aws-ec2-create-user-add-public-key/provide-access.sh?utm_source=diendancongnghe.com]https://github.com/shivalkarrahul/DevOps/blob/master/aws/shell-scripts/aws-ec2-create-user-add-public-key/provide-access.sh[/URL]
Mã:
File:provide-access.sh
Mã:
helpFunction(){ echo "" printf "\033[1;32mSử dụng: $0 -K  -U  -I  -u  -k " echo "" echo -e "\t-K \".pem khóa của máy chủ mà người dùng mới đã được tạo\"" echo -e "\t-U Tên người dùng của máy chủ mà người dùng mới đã được tạo" echo -e "\t-I IP của máy chủ mà người dùng mới đã được tạo " echo -e "\t-u người dùng sẽ được tạo trên máy chủ nội bộ" echo -e "\t-k \"chuỗi khóa công khai sẽ được thêm vào do người dùng chia sẻ\"" echo -e "Đặt Khóa công khai trong dấu ngoặc kép" echo -e "ví dụ." 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 key-name\"" echo -e "\033[0m" #reset color exit 1 # Thoát khỏi tập lệnh sau khi in trợ giúp}while getopts "I:K:U:u:k:" optdo case "$opt" in K ) internalServerPemKey="$OPTARG" ;; U ) internalServerUser="$OPTARG" ;; I ) internalServerIP="$OPTARG" ;; u ) userName="$OPTARG" ;; k ) keyString="$OPTARG" ;; ? ) helpFunction ;; # In helpFunction trong trường hợp tham số không tồn tại esacdone# In helpFunction trong trường hợp tham số trốngif [ -z "$internalServerIP" ] || [ -z "$internalServerPemKey" ] || [ -z "$internalServerUser" ] || [ -z "$userName" ] || [ -z "$keyString" ]then printf "\033[1;31m" echo "Một số hoặc tất cả các tham số đều trống"; helpFunctionfi# Bắt đầu tập lệnh trong trường hợp tất cả các tham số đều đúngprintf "\033[1;33m------------------------------------------------------------------Trước ssh"echo -e "\033[0m" #reset colorecho ".pem key của máy chủ mà người dùng mới đã được tạo: $internalServerPemKey"echo "UserName của máy chủ mà người dùng mới đã được tạo: $internalServerUser"echo "IP của máy chủ mà người dùng mới đã được tạo: $internalServerIP"echo "người dùng sẽ được tạo trên máy chủ nội bộ: $userName"echo "chuỗi khóa công khai sẽ được thêm vào do người dùng chia sẻ: $keyString"printf "\033[1;31mĐăng nhập vào: "$internalServerPemKey" "$internalServerUser"@"$internalServerIP"\033[0m\n"ssh -i "$internalServerPemKey" "$internalServerUser"@"$internalServerIP"  .ssh/authorized_keys echo "Nội dung của .ssh/authorized_keys" cat .ssh/authorized_keys printf "\033[1;31mThoát khỏi ---> "$internalServerPemKey" "$internalServerUser"@"$internalServerIP"\033[0m\n" #echo "Người dùng hiện tại ---> $userName"EOFTẠI ĐÂY
Tạo cặp khóa cho người dùng sẽ được tạo. Tại đây, tôi sẽ lưu trữ các khóa này trong /tmp/
Mã:
ssh-keygen

Mã:
ls /tmp/id_rsa*

Tạo người dùng bằng tập lệnh​

Bây giờ, hãy tạo người dùng bằng lệnh sau. Bạn cần thay đổi các giá trị trên tập lệnh bằng giá trị hợp lệ với bạn. Thực hiện lệnh sau từ hệ thống Linux cục bộ của bạn.

Trước khi thực hiện tập lệnh, hãy thay đổi quyền của tập lệnh
Mã:
chmod 744provide-access.sh
Mã:
./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+wNlxT7cUvr0ugii9FI XlXLLjwLsw47bEUNSIhwJB+x7u8tfOc00IBzhghCU9DjfGzMNxWdwpWg2GsAoRWQAT1YGO3laqPpxSVN6RKAzsTJ
gSa r7bwJsjEtiCb7+of95SIR/lkP/e1hpsbuDUpc94mTAkde88pFPE/799w+YnbUwaj+1Y8e9R1QRjbs9Xh+b2wAgaAlMTPEFh [emailprotected]"
Tại đây,
  • -U = ubuntu = Người dùng có quyền sudo để đăng nhập vào phiên bản EC2.
  • -K =~/Downloads/howtoforge-test.pem =Ureate để đăng nhập vào phiên bản EC2.
  • -I =ec2-15-236-64-128.eu-west-3.compute.amazonaws.com =IP của phiên bản EC2.
  • -u = rahul = Người dùng sẽ được tạo
  • -k = Khóa công khai của người dùng sẽ được tạo.
Các giá trị này sẽ khác nhau đối với bạn. Thêm các giá trị hợp lệ cho bạn.



Bạn có thể thấy rằng người dùng đã được tạo.

Bây giờ, bạn có thể đăng nhập vào phiên bản EC2 để kiểm tra xem người dùng đã được tạo hay chưa.
Mã:
ssh -i ~/Downloads/howtoforge-test.pem [emailprotected]
Mã:
cat /etc/passwd | grep rahul


Bây giờ bạn có thể thử đăng nhập vào máy chủ bằng người dùng, tức là rahul, mà chúng ta vừa tạo.

Trước đó, hãy thay đổi quyền của khóa riêng được sử dụng để xác thực với máy chủ.
Mã:
chmod 400 /tmp/id_rsa.pub
Mã:
ssh -i /tmp/id_rsa.pub [emailprotected]


Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng chúng ta đã có thể đăng nhập vào máy chủ bằng người dùng đã tạo.

Ngoài ra, hãy kiểm tra khóa mà chúng ta đã thêm vào người dùng. Bạn sẽ thấy khóa công khai mà chúng tôi đã chuyển cho tập lệnh đã được thêm vào máy chủ.


Kết luận​

Trong bài viết này, chúng ta đã thấy tập lệnh tự động hóa quy trình tạo người dùng trên phiên bản Ubuntu EC2 và thêm khóa công khai vào đó.

Tự động hóa này có thể giúp giảm thiểu công sức cần thiết để tạo người dùng theo cách thủ công và thêm khóa công khai cho họ.
 
Back
Bên trên