Cara menggunakan kunci SSH dan menonaktifkan otentikasi kata sandi

12

Saya mencoba mengakses Mac dari jarak jauh (saya punya akses fisik ke Mac ini) melalui SSH dari komputer klien Linux. Tujuan saya adalah mengakses Mac ini dari luar jaringan. Port forwarding diatur pada router. Dari komputer klien saya, saya bisa ssh user@ipuntuk IP publik dan saya bisa masuk ke Mac, jadi port forwarding berfungsi.

Sekarang saya ingin mengatur kunci SSH. Saya telah membuat kunci SSH pada komputer klien saya, tetapi saya ingin mendapatkan SSH Daemon pada pengaturan Mac terlebih dahulu. Saya mengedit /etc/ssh_configdan mengatur PasswordAuthentication no. Saya memulai ulang SSH dengan perintah ini:, sudo launchctl unload /System/Library/LaunchDaemons/ssh.plistlalu sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist. Ketika saya mencoba SSH masuk dari klien lagi, masih meminta kata sandi saya.

Saya melihat posting ini dan dari jawaban saya menambahkan UsePAM noke file konfigurasi dan memulai kembali layanan dengan launchctllagi. Saya masih dimintai kata sandi.

Saya juga mencoba solusinya di sini . Saya masih dimintai kata sandi.

Bagaimana cara saya mengatur ssh_configagar tidak meminta kata sandi dan hanya menerima kunci SSH? Apakah saya tidak me-restart daemon dengan benar? Apakah ada langkah lain yang saya lewatkan?

beznez
sumber

Jawaban:

13

Saya mengedit file konfigurasi yang salah! Alih-alih /etc/ssh_config, saya mengedit private/etc/sshd_config. Saya pikir ini mungkin juga akan berhasil jika saya diedit /etc/sshd_configsesuai jawaban yang diperbarui dari @GhostLyrics, tapi saya belum mengujinya jadi saya tidak bisa mengatakannya dengan pasti. Setelah itu, saya memulai kembali layanan dengan sudo launchctl stop com.openssh.sshddan kemudian sudo launchctl start com.openssh.sshddan saya bisa mendapatkan perilaku yang saya inginkan. Berikut adalah sumber di mana saya menemukan informasi terkait: /superuser/364304/how-do-i-configure-ssh-on-os-x

Berikut adalah opsi konfigurasi yang saya ubah:

PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

Setelah itu saya berhasil membuat kunci SSH di komputer klien saya, memindahkan kunci publik ke ~/.ssh/authorized_keyspada Mac dan mengatur izin untuk file itu ke 644.

Penting untuk dicatat bahwa izin itu untuk kunci publik saya . Izin kunci pribadi saya diatur ke 600 di komputer klien saya. Ini sangat penting jika Anda memiliki kunci publik dan pribadi di ~/.sshfolder Anda dan ada banyak pengguna di sistem. Jika izin kunci pribadi Anda diatur ke 644 maka setiap pengguna dapat membaca kunci pribadi Anda dan menyamar sebagai Anda. Juga, izin untuk ~/.sshfolder tersebut harus 700.

beznez
sumber
5
Secara internal, /etc/sshd_configdan /private/etc/sshd_configfile yang sama. :)
GhostLyrics
8

/etc/ssh/ssh_configadalah file konfigurasi untuk klien yang digunakan jika Anda tidak memiliki yang lebih spesifik di direktori home Anda. Yang ingin Anda edit adalah /etc/ssh/sshd_configyang untuk server.

Anda mungkin ingin mengatur PermitRootLogin without-password(atau no) dan di PasswordAuthentication nosana.


Pembaruan: Karena Anda menjalankan Yosemite, file /etc/sshd_configsesuai dengan jawaban ini: https://apple.stackexchange.com/a/167405/11135

Untuk lebih jauh menjelaskan mengapa masih meminta ketika pengaturan PasswordAuthentication nodi /etc/ssh/ssh_configdalamnya penting untuk memahami apa yang Anda konfigurasi. "Saat membuat koneksi keluar melalui SSH, jangan menawarkan otentikasi kata sandi."

GhostLyrics
sumber
Saya tidak punya /etc/ssh/ssh_config, hanya a /etc/ssh_config. Saya menjalankan Yosemite. Saya sudah mencoba PasswordAuthentication notetapi masih meminta saya untuk memasukkan kata sandi.
beznez
Ah, begitu. Bukan itu yang saya inginkan. Saya ingin SSH dari klien Linux saya ke Mac dengan kunci dan tanpa kata sandi. Apa yang harus saya ubah untuk koneksi yang masuk ?
beznez
/etc/sshd_configPasswordAuthentication no. Maaf bila membingungkan. Tolong beri tahu saya bagaimana saya bisa membuat jawabannya lebih jelas. :)
GhostLyrics
Saya masih mendapatkan perilaku yang sama. Ini meminta saya untuk kata sandi ketika saya ssh dari mesin Linux ke Mac.
beznez
Mari kita lanjutkan ini dalam obrolan chat.stackexchange.com/rooms/info/34931/...
GhostLyrics