No menu items!
No menu items!
More

    Sử dụng mật khẩu mã hóa trong Linux Bash Shell Script

    Bạn nên sử dụng mật khẩu mã hóa trong các file bash shell của Linux. Thông thường, trong file bash shell, chúng ta có thể cần mật khẩu cho người dùng từ xa trong khi kết nối với hệ thống từ xa, người dùng ftp và người dùng proxy, v.v. Trong bài viết này, mình sẽ đề cập đến cách mã hóa mật khẩu bằng openssl.

    Mã hóa mật khẩu bằng Openssl

    Giả sử chúng ta muốn kết nối với hệ thống từ xa qua ssh bằng mật khẩu bên trong tập lệnh shell. Để mã hóa mật khẩu, hãy sử dụng lệnh openssl dưới đây trong hệ thống linux của bạn.

    $ echo "Hoanghd164" | openssl enc -aes-256-cbc -md sha512 -a -pbkdf2 -iter 100000 \ 
    -salt -pass pass:Secret@123#

    Lưu ý: ‘ Hoanghd164’ là mật khẩu mà mình muốn mã hóa nó và ‘Secret@123#’ là mật khẩu được sử dụng trong quá trình mã hóa.

    Để lưu mật khẩu đã mã hóa vào một file, hãy sử dụng lệnh sau

    $ echo "Hoanghd164" | openssl enc -aes-256-cbc -md sha512 -a -pbkdf2 -iter 100000 \ 
    -salt -pass pass:Secret@123# > ./secret.txt

    Đặt các quyền sau trên file secret.txt bằng lệnh chmod 

    $ chmod 600 secret.txt

    Giải mã mật khẩu được mã hóa bằng Openssl

    Để giải mã mật khẩu, hãy chạy bên dưới

    $ cat secret.txt | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 \
     -salt -pass pass:Secret@123#
    Hoanghd164

    Lưu ý: Mình đã sử dụng tùy chọn ‘-d’ để giải mã.

    Sử dụng mật khẩu được mã hóa trong Bash Shell Script

    Sử dụng file shell mẫu dưới đây sẽ sử dụng mật khẩu được mã hóa trong khi kết nối với hệ thống từ xa qua ssh.

    $ vi sample.sh
    #!/bin/bash
    USERNAME=devops
    PASSWD=`cat secret.txt | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 \ 
    -iter 100000 -salt -pass pass:Secret@123#`
    
    REMOTE=10.20.0.20
    
    sshpass -p $PASSWD ssh -o StrictHostKeyChecking=no $USERNAME@$REMOTE \
     'dmesg -Tx | grep -i error' > /tmp/a.tmp

    Lưu và đóng file, phân quyền cho file có thể thực thi được bằng cách chạy lệnh bên dưới.

    $ chmod + x sample.sh

    Chạy thử file sample.sh.

    $ bash -x sample.sh
    + USERNAME=devops
    ++ openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 -salt \ 
    -pass pass:Secret@123#
    ++ cat secret.txt
    + PASSWD=Passw0rD@#2
    + REMOTE=10.20.0.20
    + sshpass -p Passw0rD@#2 ssh -o StrictHostKeyChecking=no devops@10.20.0.20 \ 
    'dmesg -Tx | grep -i error'

    Hoàn hảo, đầu ra ở trên xác nhận rằng mã hóa được giải mã trong quá trình thực thi. Hy vọng bạn có một ý tưởng về cách chúng tôi có thể sử dụng mật khẩu được mã hóa bên trong một tập lệnh shell.

    Bài viết gần đây

    spot_img

    Related Stories

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    Đăng ký nhận thông tin bài viết qua email