Bagaimana cara mengotomatiskan proses kinit untuk mendapatkan TGT untuk Kerberos?

10

Saat ini saya sedang menulis modul boneka untuk mengotomatiskan proses bergabung dengan server RHEL ke domain AD, dengan dukungan untuk Kerberos.

Saat ini, saya memiliki masalah dengan secara otomatis mendapatkan dan melakukan cache tiket melalui pemberian Tiket Kerberos kinit. Jika ini dilakukan secara manual, saya akan melakukan ini:

kinit [email protected]

Ini meminta kata sandi pengguna AD, karenanya ada masalah dengan mengotomatiskan ini.

Bagaimana saya bisa mengotomatisasi ini? Saya telah menemukan beberapa tulisan yang disebutkan digunakan kadminuntuk membuat database dengan kata sandi pengguna AD di dalamnya, tetapi saya tidak beruntung.

merobek-
sumber

Jawaban:

18

Bodoh saya, Anda cukup menggunakan perintah berikut:

echo "password" | kinit aduser@REALM
merobek-
sumber
1
echo -n "$PASS" | kinit "$USER"jangan tampilkan trailing newline
Dejan
14
Atau cetak poster dengan kata sandi Anda dan hang out! Menyimpan kata sandi Anda dalam teks biasa adalah tidak boleh
Havnar
17

Meskipun Anda bisa memasukkan kode sandi ke dalam otomatisasi Anda, cara Kerberos yang lebih tepat untuk melakukan ini adalah dengan membuat keytab untuk kepala sekolah dan kemudian menggunakannya untuk otentikasi. kinitmendukung otentikasi dari keytab menggunakan -k -t <keytab-path>opsi.

Keuntungan utama keytab adalah bahwa ia mengisolasi kredensial dalam file terpisah dan dapat digunakan langsung oleh berbagai perangkat lunak Kerberos (jadi Anda tidak perlu menambahkan kode untuk membaca kata sandi dari file terpisah). Itu juga dapat dibuat dengan perintah standar (dengan AD KDC, gunakan ktpass). Ada beberapa keuntungan lebih jika Anda memiliki KDC Linux, seperti kunci acak yang disimpan di tab kunci daripada menggunakan kata sandi yang lebih lemah.

rra
sumber
1
Keytab jelas merupakan jalan yang harus ditempuh. Jika Anda menghasilkan ini dalam kadmin, pastikan untuk menggunakan -norandkeybendera di ktadd jika Anda tidak ingin membatalkan kata sandi yang ada.
Dennis Jaheruddin
1

Menurut halaman manual yang dapat Anda gunakan:

kinit --password-file="~/my.secret" [email protected]

Jadi Anda mungkin memberikan kata sandi Anda melalui file.

Nico Stöckigt
sumber
apakah itu berfungsi di windows?
Indranil Gayen