Header Ads Widget

Ticker

6/recent/ticker-posts

Cài đặt aws-vault trên ubuntu, wsl và config gpg trên user không có quyền sudo

Keywords: How to install aws-vault on Ubuntu server and config gpg on user not use sudo

Có ai đã từng sử dụng thằng aws-vault để connect tới server cho an toàn không nhỉ, riêng mình là mình hay sử dụng nó lắm vì nó có thể connect thông qua mfa của aws giúp cho hệ thống security hơn, mà không lưu bất kì file "credentials" nào cả, thường những file "credentials" này chứa đựng các mã ACCESS KEY ID và SECRET ACCESS KEY dẫn đến tình trạng dễ bị lộ thông tin, nhưng với thằng aws-vault thì mọi thứ được ẩn đi cả, và chỉ còn lại 1 file config thôi

Thường ở các hệ điều hành khác như thế nào thì mình không biết, nhưng trường hợp của mình đang xảy ra là ở Ubuntu và cả WSL của Windows chạy Ubuntu, vì vậy mình nghĩ rằng vấn đề là ở phía Ubuntu nhiều hơn chứ không phải do WSL bởi vì hiện tại server Ubuntu của mình cũng bị vấn đề như vậy, chúng ta thường sẻ gặp một số vấn đề như sau

  • Failed backend secret-service: The name org.freedesktop.secrets was not provided by any .service files aws-vault: error: Specified keyring backend not available, try --help

Thường khi xảy ra lỗi này nghĩa là phía aws-vault cần cung cấp thêm 1 số biến như sau, chúng ta sẻ setting nó vào trong file .bashrc or .zshrc tùy vào bạn đang sử dụng loại nào mà config nhé

export AWS_VAULT_BACKEND=pass
export GPG_TTY="$(tty)"
Ok add nó vào trong 2 file đó cho mình, sau đó thực hiện chạy lệnh
"source .bashrc" or "source .zshrc"
2 câu lệnh mình sẻ bỏ trong dấu ngoặc kép tùy vào bạn đang sử dụng loại nào nhé, tiếp đến chúng ta thực hiện cài đặt thêm pass và gnupg cho thằng ubuntu vì chính nguyên nhân thiếu 2 thằng này mà khiến nó bị lỗi như trên đấy
sudo apt-get install -y pass gnupg
Sau khi đã cài đặt xong rồi bạn thực hiện chạy lệnh sau để tạo mã cho aws-vault, vừa mã vừa mfa mới an toàn đúng không nào hehe
gpg --gen-key
Mọi thứ sẻ tốt đẹp nếu như bạn chạy bằng quyền sudo hoặc root nhưng giả sử bạn không thích sử dụng root hoặc sudo để chạy nó, mà muốn security với một tài khoản thường thì sao ? vâng nếu như bạn chạy ở tài khoản thường thì nó sẻ bị lỗi như sau 
  • gpg: agent_genkey failed: Permission denied
  • Key generation failed: Permission denied
Lúc này đây chắc nhiều bạn nhức não rồi đúng không ? bình tĩnh đã, mình phải mất rất nhiều thời gian để tìm ra được đáp án mà, các bạn cứ từ từ các bạn thực hiện lệnh cấp quyền sau cho mình nhé
chown ubuntu $(tty)
sudo usermod -a -G dialout $USER
sudo usermod -a -G tty ubuntu
Hoặc cứ chơi lớn luôn là cấp full quyền cũng được nhưng nó hơi kém security cho lắm, nói chung tùy các bạn lựa chọn quyền hạn, miễn sao thằng ubuntu nó có quyền là được haha, nói chứ khi nào cái trên không khả thi thì các bạn thực hiện cấp full quyền 777 sau
chmod -R 777 $(tty)
Điều này để thực hiện cấp quyền chủ sở hữu ubuntu đến tty cho thằng gpg đấy, vì ở đây mình sử dụng user ubuntu để tạo gpg nên mình đã cấp quyền này cho thằng ubuntu, sau khi đã cấp quền xong rồi thực hiện chạy lại lệnh trên để tạo lại key, có một số trường hợp chúng ta sẻ gặp phải lỗi 
  • gpg: decryption failed: No secret key
Lỗi này là vì lúc chúng ta tạo gpg key ở trên nhiều lần sai nhưng nó đã tạo ra 1 file trùng với file lỗi ban đầu, tóm gọn là nó còn lưu dữ liệu củ nên thành ra nó bị fail vậy thì lúc này cách giải quyết là như thế nào ? các bạn thực hiện xóa 2 folder sau và thực hiện tạo lại là ok
rm -rf .gnupg
rm -rf .password-store
Sau khi đã xóa và tạo lại thì coi như đã không còn vấn đề lỗi nào nữa, chúng ta sẻ tiếp tục các bước chạy kế tiếp của nó, khi bạn tạo file gpg --gen-key thì nó sẻ tạo ra 1 dãi số, thực hiện tạo pass cho dãi mã này bằng lệnh
pass init 21105A5CF49B2C975FBBCEF51DC660EE2E87B6ED
Nhớ thay thế mã số của bạn vào nhé, mình sẻ tô màu để các bạn dễ hiểu, sau khi đã tới đây rồi thì minh tin chắc là cái aws-vault của các bạn đã chạy ngon lành trên ubuntu rồi đấy, không còn vấn đề gì nữa đâu
Một số tools đi kèm với aws-vault:
Chúc các bạn thành công nhé

Post a Comment

0 Comments