Memeriksa kunci ssh memiliki frasa sandi


8

Saya memiliki banyak pengguna, yang dengan kunci SSH memiliki akses ke akun di server lain. Saat ini saya memiliki skrip yang mengumpulkan kunci publik ssh dan mendistribusikannya ke akun yang benar di server yang benar.

Apa yang ingin saya lakukan, adalah mendapatkan skrip itu untuk memeriksa bahwa setiap kunci ssh pengguna yang diberikan memiliki frasa sandi sebelum menerima kunci publik dan mendistribusikannya.

Saya sudah mencoba beberapa hal, seperti menggunakan ssh-agentdan ssh-addkemudian masalah datang ketika ssh-addakan meminta passphrase.

Apakah ada cara untuk mendapatkan sesuatu seperti opensslmemeriksa frasa sandi, sedikit gagal dengan kode pengembalian 1jika kunci memiliki frasa sandi?

Terima kasih!


Bisakah Anda mengklarifikasi apakah persyaratan untuk memiliki kata sandi atau tidak untuk memilikinya - dan karena alasan apa?
user1686

grawity: Persyaratan saya adalah untuk memastikan pengguna telah menetapkan frasa sandi pada kunci ssh mereka, hanya kunci dengan frasa sandi yang akan didistribusikan ke server lain.
Peter Farmer

Jawaban:


11

Jika keyfile menggunakan kata sandi, itu memiliki atribut "Proc-Type:" yang disetel dengan kata "ENCRYPTED" ditambahkan.

Jadi, Anda dapat menentukan apakah keyfile menggunakan kata sandi dengan menjalankannya finddan grepmelihat apakah itu memiliki string 'DIKENALKAN'.

# 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

mencetak daftar file yang memiliki frasa sandi. Kemudian Anda bisa mencocokkannya dengan daftar semua keyfile untuk memilih yang tidak menggunakan frasa sandi. Daftar semua keyfile dapat diperoleh misalnya dengan membiarkan -execparameter keluar, sebagai berikut:

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

Tidak lagi mungkin dengan format kunci SSH baru, Proc-Typeheader tidak ditulis ke file, meskipun sedang dienkripsi.
Oneiroi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.