Kiểm tra các khóa ssh có cụm mật khẩu


8

Tôi có một nhóm người dùng, những người có khóa SSH có quyền truy cập vào tài khoản trên các máy chủ khác. Hiện tại tôi có một tập lệnh thu thập các khóa công khai ssh và phân phối chúng vào đúng tài khoản trên đúng máy chủ.

Những gì tôi muốn làm là lấy tập lệnh đó để kiểm tra xem bất kỳ khóa ssh nào của người dùng đã cho đều có cụm mật khẩu trước khi chấp nhận khóa chung và phân phối nó.

Tôi đã thử một số điều, như sử dụng một ssh-agentssh-addsau đó là vấn đề được đưa ra khi ssh-addđược hỏi cho cụm từ mật khẩu.

Có cách nào để có được một cái gì đó như opensslkiểm tra cụm mật khẩu, thất bại một chút với mã trả về 1nếu khóa có cụm mật khẩu không?

Cảm ơn!


Bạn có thể làm rõ liệu yêu cầu là một cụm mật khẩu hay không để có nó - và vì lý do gì?
grawity

grawity: Yêu cầu của tôi là đảm bảo người dùng đã đặt cụm mật khẩu trên các khóa ssh của họ, chỉ các khóa có cụm mật khẩu sẽ được phân phối cho các máy chủ khác.
Nông dân Peter

Câu trả lời:


11

Nếu một keyfile sử dụng cụm mật khẩu, nó có thuộc tính "Proc-Type:" được gắn với từ "ENCRYPTED".

Vì vậy, bạn có thể xác định xem một keyfile có sử dụng cụm mật khẩu hay không bằng cách chạy nó qua findgrepđể xem nó có chuỗi 'ENCRYPTED' hay không.

# list keyfiles that USE a passphrase
HOMES=/home /mnt/nfs_home
find $HOMES -maxdepth 3 -type f -path '*/.ssh/id* -name "id_[dr]sa*" -exec grep -q "ENCRYPTED" {} \; -print

in một danh sách các tập tin cụm mật khẩu. Sau đó, bạn có thể kết hợp chúng với danh sách tất cả các keyfiles để chọn ra những cụm từ không sử dụng cụm mật khẩu. Một danh sách tất cả các keyfiles có thể được lấy, ví dụ bằng cách bỏ -exectham số ra, như sau:

# list all keyfiles
HOMES=/home /mnt/nfs_home
find $HOMES -maxdepth 3 -type f -path '*/.ssh/id* -name "id_[dr]sa*" -print

Không còn có thể với định dạng khóa SSH mới, Proc-Typetiêu đề không được ghi vào tệp, mặc dù đã được mã hóa.
Oneiroi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.