Aktifkan login ssh-key-only ke Mac untuk 1 pengguna


21

Saya memiliki Macbook Air yang ingin saya akses SSH jarak jauh tanpa kata sandi. Saya telah membuat pengguna bernama remotepairyang saya gunakan untuk masuk dan memverifikasi saya dapat menggunakan Mac. Saya juga menambahkan pengguna ini ke daftar pengguna yang diizinkan layanan "Hapus Login" dan menyalakan layanan. Ini semua dilakukan di panel kontrol "Berbagi".

Saya mendapatkan kunci publik dari komputer lain dan menambahkannya ke file /Users/remotepair/.ssh/authorized_keys. Ketika komputer lain ssh remotepair@<my ip>saya masih mendapatkan prompt kata sandi.

Bagaimana cara menonaktifkan prompt kata sandi ini?


1
Saya sarankan menambahkan "Otentikasi khusus Kunci SSH" ke judul pertanyaan Anda - cara bunyinya sekarang terdengar seperti GUI loginwindow login biasa.
NReilingh

Jawaban:


27

Untuk menonaktifkan otentikasi kata sandi, Anda perlu mengedit /etc/sshd_config. Di Terminal:

sudo vim /etc/sshd_config

(atau ganti dengan editor favorit Anda)

Cari garis:

#ChallengeResponseAuthentication yes

Dan ubah ke:

ChallengeResponseAuthentication no

Yaitu, hapus #di awal, dan ubah yeske no.

Semua login ssh selanjutnya sekarang MEMERLUKAN Anda untuk menggunakan kunci ssh dan tidak akan meminta kata sandi. Pastikan kunci ssh Anda berfungsi sebelum melakukan ini jika Anda tidak memiliki akses lokal! Tidak perlu me-restart daemon ssh atau apa pun karena itu dimulai atas permintaan untuk setiap koneksi masuk baru. Perhatikan bahwa Anda mungkin juga melihat PasswordAuthenticationgaris, tetapi itu nosudah default .

Jika kunci ssh Anda tidak berfungsi maka itu adalah masalah yang terpisah, tetapi ini menjawab pertanyaan seperti yang diajukan sekarang :)


Saya juga perlu menambahkan pengguna ke pengaturan AllowUser. Saya hanya bisa menebak pengaturan GUI juga tidak mengubah baris teks ini.
Jason

7
Catatan, dalam versi Mac OS X yang lebih baru (pasti di El Capitan), sshd_config telah dipindahkan ke /etc/ssh/.
zelk

2
Catatan, pada MacOS Sierra (v10.12.x), default untuk PasswordAuthenticationtelah berubah menjadi yes, jadi pastikan untuk mengubahnya ke no.
Travis Clarke

2

Untuk memperbarui jawaban untuk macOS Sierra (khusus 10.12.6), tampaknya file konfigurasi sekarang /etc/ssh/sshd_config

2 baris harus dibatalkan komentarnya + dimodifikasi untuk sepenuhnya menonaktifkan otentikasi kata sandi: (Ini adalah baris 57 hingga 62, inklusif, dalam sshd_configfile default )

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

Seperti disebutkan sebelumnya, Anda dapat mengaktifkan / menonaktifkan akses ssh dari System Preferences.app GUI, dan tidak perlu me-restart daemon antara mengedit konfigurasi.


1

Anda harus memeriksa izin direktori yang terlibat: /Users/remotepair/dan /Users/remotepair/.ssh, mereka tidak boleh mengizinkan akses tulis oleh pengguna "lain". .sshHak akses saya hanya untuk pemilik.

Juga, pada sistem jarak jauh, lakukan ssh -v remotepair@yoursystemuntuk melihat metode otorisasi mana yang diizinkan dan dicoba. Mencari Authentications that can continue: publickey,password,keyboard-interactive. Mungkin Anda harus mengaktifkan RSAAuthenticationsistem Anda.


1

Pada sistem pengujian di sini, menonaktifkan SSH meminta dua baris berikut harus ditambahkan ke /etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

Komentar di sshd_configjuga menyarankan baris berikut ditambahkan:

UsePAM no
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.