Bagaimana saya bisa membuat pengguna bisa masuk dengan kunci ssh tetapi tidak dengan kata sandi?

17

Saya ingin membuat pengguna dan tidak memiliki kata sandi. Seperti di Anda tidak dapat masuk dengan kata sandi. Saya ingin menambahkan kunci ke otor_keys dengan menggunakan root. Ini untuk sistem cadangan otomatis saya.

Jeff Schaller
sumber

Jawaban:

26

Penggunaannya passwd -djelas salah , setidaknya pada Fedora , pada distro linux apa pun berdasarkan shadow-utils. Jika Anda menghapus kata sandi passwd -d, itu berarti siapa pun dapat masuk ke pengguna itu (pada konsol atau grafis) tanpa memberikan kata sandi.

Untuk memblokir login dengan otentikasi kata sandi, jalankan , yang mengunci akun sehingga hanya tersedia untuk pengguna root. Penguncian dilakukan dengan merender kata sandi terenkripsi menjadi string yang tidak valid (dengan mengawali string terenkripsi dengan!).passwd -l username

Upaya login apa pun, lokal atau jarak jauh, akan menghasilkan "kata sandi yang salah" , sementara login kunci publik masih akan berfungsi. Akun kemudian dapat dibuka dengan .passwd -u username

Jika Anda ingin mengunci akun sepenuhnya tanpa menghapusnya, edit /etc/passwddan setel /sbin/nologinatau /bin/falsedi kolom terakhir. Ini akan menghasilkan "Akun ini saat ini tidak tersedia." untuk setiap upaya login.

Silakan merujuk ke halaman manual passwd (1).

guido
sumber
@guido: rvs tidak akan diberi tahu tentang jawaban Anda. Anda perlu menambahkan komentar pada jawabannya untuk itu (saya sudah melakukannya). Perhatikan bahwa pembaca dapat membaca jawaban Anda sebelum jawabannya, Anda harus menulis jawaban yang langsung menjawab pertanyaan. Bagus sekali untuk menunjukkan ini! Ini berlaku untuk sebagian besar distribusi Linux (yang menggunakan utilitas bayangan Linux).
Gilles 'SO- stop being evil'
@Gilles: maaf saya baru di stackexchange; saya hanya menunjukkan yang satu ini agak sulit karena itu seperti menyarankan pengguna untuk mengatur akun tanpa kata sandi, dan itu diterima dan ditandai sebagai berguna ...
guido
@guido: Jangan khawatir, saya baru saja menjelaskan bagaimana membuat peringatan Anda lebih efektif. Bahkan, dalam kasus-kasus ekstrem seperti itu di mana jawaban salah yang berbahaya, akan pantas untuk menyarankan suntingan yang menambahkan peringatan atau koreksi (mudah-mudahan Anda tidak akan terlalu sering menghadapi situasi ini di situs).
Gilles 'SO- stop being evil'
@guido: Sebenarnya, di debian Squeeze (saya tidak tahu tentang lenny atau etch) yang menjawab TIDAK BERHASIL. Itu tidak mengizinkan siapa pun selain root untuk login, mengizinkan kunci otorisasi tetapi bukan kata sandi yang kurang, ia hanya tidak menerima kata sandi. Saya menduga Anda dapat 'menghapus kata sandi' dan itu akan berfungsi seperti ini. Tapi itu melakukan persis apa yang saya inginkan dan persis apa jawaban ini dan merupakan satu-satunya jawaban jadi saya hanya menerimanya. Jawaban ini lebih masuk akal dan saya akan menerimanya karena saya berani bertaruh disto lain tidak mengizinkan siapa pun untuk masuk tanpa password seperti debian. Bagaimanapun jawaban yang bagus.
1
@ acidzombie24, @mattdn: mereka bisa menghapus nullok dari pam.d / password-auth jika debian menggunakan pam (saya pikir begitu, tetapi saya bukan ahli debian). Namun, passwd (1) manpage cleary menyatakan bahwa -d argumen adalah untuk membuat akun tanpa kata sandi, sehingga setiap spekulasi distro-spesifik di sini adalah sekunder, karena pertanyaannya sangat umum.
guido
2

Apakah Anda tidak meminta khusus untuk daemon SSH, bukan untuk menerima otentikasi berdasarkan kata sandi tetapi otentikasi kunci / frasa sandi?

Cari perubahan sshd_config.

Set

PasswordAuthentication No
PreferredAuthentications publickey,hostbased,keyboard-interactive
Protocol 2,1

Cari lebih banyak parameter konfigurasi di man ssh_config

Nikhil Mulley
sumber
0

Hanya saja, jangan mengatur kata sandi untuk pengguna. Jika sudah ada kata sandi hapus dengan menggunakanpasswd -l <username> .

Tetapi masih mungkin untuk masuk sebagai pengguna ini - dengan menggunakan otor_keys, atau melalui su atau sudo dari beberapa akun istimewa.

rvs
sumber
1
Seperti yang ditunjukkan oleh guido , passwd -dmembuat akun tanpa kata sandi, seperti pada, Anda dapat masuk tanpa harus mengetikkan kata sandi. Gunakan passwd -luntuk mengunci akun (anggap itu memberikan kata sandi yang mustahil diketik).
Gilles 'SO- stop being evil'
Saya telah menambahkan peringatan ke pos Anda, karena itu berbahaya. Saya akan menyerahkan kepada Anda untuk memutuskan apakah akan memperbaiki jawaban Anda, atau menghapus jawaban Anda (jika menurut Anda guido sudah mencukupi), atau menyangkal peringatan itu.
Gilles 'SO- stop being evil'
Mengapa oh mengapa orang menerima jawaban yang bahkan tidak berhasil?
mathepic
@ mathepic: Ini berfungsi, pada debian. Persis seperti yang saya tanyakan
apakah Anda yakin bahwa pengguna yang tidak memiliki hak istimewa tidak dapat melakukannya sukepada pengguna?
mattdm