Anda dapat menyalin kunci publik Anda ke mesin jarak jauh. Selama mereka mengaktifkan otentikasi kunci publik, dan kunci publik Anda ada di mesin jarak jauh, Anda bisa ssh
ke mesin tanpa harus memberikan kata sandi.
Pertama, Anda perlu membuat keypair publik / pribadi seperti:
ssh-keygen -t rsa
Ikuti petunjuknya. Ketika ditanya apakah Anda ingin melindungi kunci dengan frasa sandi, katakan YA! Ini praktik yang buruk untuk tidak melindungi kata sandi kunci Anda dan saya akan menunjukkan kepada Anda cara memasukkan kata sandi sesekali saja.
Jika sudah memiliki keypair, Anda dapat melewati langkah di atas.
Sekarang, dengan asumsi kunci ssh Anda ada pada Mac ~/.ssh/id_rsa.pub
Anda, Anda dapat menginstalnya pada mesin jarak jauh dengan menjalankan:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Untuk contoh server spesifik Anda yang dikutip di atas, perintahnya akan terlihat seperti:
cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Anda harus memasukkan kata sandi untuk root@123.456.789.012
melakukan salinan ini, tetapi ini harus menjadi yang terakhir kali Anda perlu melakukan ini. Dengan asumsi server jarak jauh sshd
adalah pengaturan untuk melakukan otentikasi kunci publik-swasta, ketika Anda ssh ke kotak sekarang seharusnya tidak meminta Anda untuk kata sandi untuk root
akun - alih-alih itu akan meminta kata sandi untuk kunci Anda . Baca terus untuk cara membuat ini sesuatu yang tidak perlu Anda masukkan sepanjang waktu.
Ulangi langkah di atas untuk setiap mesin yang ingin Anda ssh masuk dengan kunci Anda, bukan kata sandi.
Harap dicatat, siapa pun yang memegang ~/.ssh/id_rsa
file Anda dapat melakukan ssh ke mesin ini root
tanpa memberikan kata sandi untuk mesin jarak jauh. Kata sandi yang melindungi file kunci memastikan mereka perlu mengetahui kata sandi untuk kunci itu untuk menggunakannya. Pastikan file itu aman. Gunakan enkripsi disk di Mac Anda dan pertahankan izin pada file dan ~/.ssh/
direktori dengan ketat.
Untuk membuatnya lebih mudah menggunakan kunci tanpa harus memasukkan kata sandi setiap kali, OS X menjalankan ssh-agent
proses di latar belakang pada mesin Anda. Agen ini akan melakukan cache keypair saat pertama kali Anda menggunakannya sehingga Anda hanya perlu memasukkan kata sandi sesekali. Jika Anda hanya tidur mac Anda, tidak pernah me-restart itu, Anda dapat pergi periode waktu yang lama tanpa perlu memasukkan kata sandi Anda.
Anda dapat melakukan pra-cache semua kunci SSH Anda dengan ssh-agent
menjalankan:
ssh-add
Sekarang Anda hanya perlu mengingat kata sandi utama , bukan banyak kata sandi akun yang berbeda. Saya biasanya menyimpan kata sandi utama saya di 1Password (tidak ada afiliasi), lebih lanjut menyederhanakan berapa banyak kata sandi yang perlu saya ingat. Kemudian saya hanya mencarinya di 1Password dan memotong-rekatkan mereka di Terminal saat aneh saya me-restart Mac saya dan menyebabkan saya berjalan ssh-agent
restart.
Jika Anda menggabungkan menyalin kunci Anda ke mesin jarak jauh dengan solusi manajemen koneksi Terminal.app dalam pertanyaan ini , Anda akan memiliki sesuatu yang sangat dekat dengan Putty untuk pengalaman koneksi GUI.
Di sisi server, periksa /etc/ssh/sshd_config
dan pastikan:
PubkeyAuthentication yes
diaktifkan dalam konfigurasi (ini secara default di OpenSSH). Anda mungkin juga ingin mengatur:
PasswordAuthentication no
Saat Anda berada di sana, otentikasi berbasis kata sandi dinonaktifkan dan kunci menjadi satu-satunya cara untuk mengakses mesin.
Anda harus memulai kembali sshd pada mesin jika Anda membuat perubahan pada file konfigurasi.