Bagaimana saya bisa mengunci akun saya sendiri dari login ssh jarak jauh dengan kata sandi?

10

Saya tidak ingin menonaktifkan login jauh dengan kata sandi sama sekali, tetapi saya ingin membuatnya sehingga akun saya hanya dapat diakses dengan otentikasi pasangan kunci (ada pengguna lain yang ingin menggunakan kata sandi untuk masuk). Apakah mungkin untuk mengubah ini berdasarkan per pengguna, idealnya tanpa mengubah pengaturan sistem?

Dan untuk memperjelas, akun saya memiliki akses sudo, jadi saya tidak ingin mengunci kata sandi.

phhehehe
sumber

Jawaban:

9

Anda dapat menggunakan opsi Cocokkan di sshd_config

Match Memperkenalkan blok bersyarat. Jika semua kriteria pada baris Pencocokan terpenuhi, kata kunci pada baris berikut mengesampingkan yang ditetapkan di bagian global file konfigurasi, hingga baris Pencocokan lain atau akhir file. [1]

Jadi, di akhir file itu Anda bisa menentukan:

Match User yourusername
PasswordAuthentication no

Lihat man 5 sshd_configsemua opsi yang tersedia.

[1] http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&sektion=5

jasonwryan
sumber
Ini sudah bagus, tetapi saya ingin melihat apakah saya dapat melakukannya tanpa mengedit sshd_config.
phunehehe
2
Mengingat Anda ingin melakukan perubahan sistem, mis., Yang tidak berdampak pada pengguna lain, yang sepertinya tidak mungkin ...
jasonwryan
dan bagaimana dengan ~ / .ssh / config? Sudahkah Anda mencoba memasukkan pengaturan di sana?
ttyS0
1
AFAK ~ / .ssh / config in untuk klien, bukan server.
Adam Byrtek
1

The jawaban dari jasonwryan akan menjadi cara yang tepat untuk membuat perubahan ini. Satu-satunya tambahan yang akan saya buat adalah bahwa Anda dapat mengatur kecocokan menjadi berbasis grup sehingga setiap pengguna dalam grup wheel akan diminta untuk menggunakan otentikasi kunci sementara yang lain dapat menggunakan kata sandi.

Saya tahu Anda ingin melakukan ini tanpa mengubah file konfigurasi sistem, tetapi ada alasan bagus mengapa itu tidak akan mungkin. Di kepala Anda masuk akal bahwa pengguna Anda harus dapat melembagakan kebijakan login yang lebih aman, tetapi hanya karena dalam pikiran Anda itu adalah pilihan yang lebih aman tidak mengubah fakta bahwa itu masih merupakan perubahan pada persyaratan login sistem untuk pengguna jarak jauh.

Untuk memahami mengapa ini merupakan masalah, bayangkan skenario sebaliknya. Administrator sistem (yang dapat mengubah file konfigurasi sistem) menetapkan sistem hanya untuk login berbasis kunci. Kemudian, beberapa pengguna datang dan hanya memiliki akses ke file pengguna mereka sendiri dan mengatur akun mereka untuk memungkinkan otentikasi kata sandi, mengesampingkan kebijakan sistem. BEEEEEEP . Masalah keamanan!

Apakah itu menjelaskan mengapa jenis perubahan yang ingin Anda lakukan hanya mungkin dari file konfigurasi sistem?

Caleb
sumber
Sulit untuk berpikir seperti itu, karena jika saya adalah pengguna normal yang tidak sudo, saya dapat dengan senang mengatur kunci saya kemudian mengunci kata sandi, sehingga membuat akun saya "otentikasi hanya kunci".
phunehehe
Dalam pemikiran lain, saya bisa mengunci kata sandi saya setiap kali saya akan keluar, yang seharusnya melarang semua kata sandi masuk untuk akun saya. Kemudian begitu saya login dengan kunci saya, saya bisa mengaktifkan kata sandi lagi untuk sudo. Jelas itu bukan solusi yang baik, tetapi itu membuat saya berpikir itu mungkin.
phunehehe
1
Anda hanya dapat melakukan itu karena administrator sistem mengizinkan otentikasi kunci dan Anda hanya menambahkan batasan untuk diri Anda sendiri, bukan mengubah apa pun. Menonaktifkan kata sandi Anda hanya menetapkannya ke nilai yang tidak valid, itu tidak mengubah otentikasi yang dimungkinkan oleh daemon sistem.
Caleb
"menambahkan batasan untuk dirimu sendiri, bukan mengubah apa pun", adalah persis apa yang ingin aku lakukan.
phunehehe
@ Caleb: Tidak akan ada masalah keamanan dalam mengizinkan authorized_keysuntuk menempatkan lebih banyak pembatasan, seperti yang diinginkan phunehehe. Misalnya authorized_keysdapat membatasi kunci tertentu untuk perintah tertentu.
Gilles 'SANGAT berhenti menjadi jahat'
0

Menambahkan batasan untuk diri sendiri, bukan mengubah apa pun

Mengapa tidak di sisi klien, jika yakin bahwa ssh akan menjadi klien yang akan digunakan untuk upaya login? Jika ya, coba lakukan perubahan pada ssh_config alih-alih sshd_config. Periksa parameter 'Kata Sandi Kebenaran' dan PreferredAuthentikasi

Nikhil Mulley
sumber