Konfigurasi Klien
Mempersiapkan ~/.ssh/config
Menyiapkan entri host sshsangat mudah dan akan menghemat banyak masalah. Berikut ini sebuah contoh:
Host digitaloceanbox
Hostname 111.111.111.111
User root
PubKeyAuthentication yes
IdentityFile /home/user/.ssh/digitalocean-rsa
ForwardX11 yes
Host github github.com
Hostname github.com
User git
PubKeyAuthentication yes
IdentityFile /home/user/.ssh/github-rsa
ForwardX11 no
Dalam contoh ini, kami mengatur digitaloceanboxdan githubdan github.comagar kami dapat melakukan perintah berikut:
ssh github
ssh digitaloceanbox
Jika kami ingin masuk sebagai pengguna yang berbeda dari yang ditentukan dalam file konfigurasi, kami hanya meletakkan user@di awal:
Membuat sshkunci
ssh-keygen -t rsa -b 4096 -C user@homemachine
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/digitalocean-rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/digitalocean-rsa
Your public key has been saved in /home/user/.ssh/digitalocean-rsa.pub.
The key fingerprint is:
SHA256:p9PYE/tveF2n//bLbp3ogYDtMtYEC5ziQiPxeob6fbo user@homemachine
Perhatikan bahwa saya telah menentukan path lengkap kunci pribadi yang ingin saya hasilkan ketika diminta oleh ssh-keygen. Saya juga mendefinisikan komentar ( -C) yang memungkinkan saya untuk dengan mudah mengidentifikasi kunci pada mesin jarak jauh.
Ini akan membuat dua file:
.ssh/digitalocean-rsa
- Kunci PRIVATE . Jangan pernah berbagi ini .
.ssh/digitalocean-rsa.pub
- Kunci publik. Ini yang Anda simpan di server untuk otentikasi.
Ketika Anda memberikan sshkunci Anda , pastikan itu .pubversinya !! Ketika Anda menambahkan ke Anda ~/.ssh/config, pastikan untuk menambahkan kunci pribadi yang benar yang cocok dengan kunci publik yang Anda tambahkan ke sistem.
Konfigurasi Server
Sebagian besar instalasi akan datang dengan Otentikasi Kunci Publik diaktifkan. Namun, jika Anda mulai melakukan semua hal dengan sendirinya, Anda mungkin akan mengalami beberapa masalah. Di tempat OP berada dalam masalah mereka, saya sarankan OP menghapus /root/.ssh/direktori untuk memulai kembali.
Anda tidak disarankan sshuntuk mengakses pengguna root di sistem jarak jauh. Dianjurkan agar Anda sshmenjadi pengguna lain, dan kemudian naik ke root menggunakan kata sandi Anda ( sudo su -).
Tambahkan kunci ke host menggunakan ssh-copy-id
Terlepas dari apakah Anda memutuskan untuk membuat pengguna lain dan menggunakan sshsebagai pengguna itu, atau pengguna root, berikut ini adalah cara yang disarankan untuk menempatkan sshkunci di server:
ssh-copy-id -i /home/user/.ssh/digitalocean-rsa.pub user@digitaloceanbox
Ini memungkinkan sshduntuk membuat direktori dan file yang dibutuhkan dengan izin yang diperlukan. Ini berarti tidak ada peluang bagi Anda untuk mengacaukan izin atau perlu mengingat detailnya. Cukup gunakan alat untuk mengunggah kunci.
Nonaktifkan Otentikasi Kata Sandi
Yang sedang berkata, setelah Anda memiliki kunci sendiri dan memverifikasi bahwa Anda dapat terhubung menggunakan kunci, disarankan agar Anda menonaktifkan Otentikasi Kata Sandi di sshddan memulai kembali layanan:
- Edit
/etc/ssh/sshd_config
PasswordAuthentication no
sudo systemctl restart sshd
Bagaimana dengan pengguna baru?
Jika Anda menonaktifkan Otentikasi Kata Sandi, bagaimana Anda dapat memasukkan pengguna baru? Salah satu caranya adalah dengan menambahkan file template ke /etc/skeldirektori. Setelah Anda mengetikkan satu pengguna, lakukan hal berikut:
sudo cp -r .ssh/ /etc/skel/
ls /etc/skel/.ssh
- Edit semua file yang ditemukan
/etc/skel/.ssh/sehingga kosong, kecuali jika Anda ingin memasukkan sendiri secara otomatis untuk setiap pengguna yang baru dibuat.
Saat Anda membuat pengguna baru sudo useradd -m newuser, pengguna itu akan memiliki .ssh/authorized_keys, yang dapat Anda edit dan akan memiliki izin yang tepat.
Debugging
Anda dapat menonton sshdfile log untuk melihat mengapa koneksi gagal atau ditolak:
sudo tail -f /var/log/auth.log
Saat Anda menjalankan perintah ini, gunakan terminal lain untuk mencoba login. Sering kali pesan yang diberikan cukup baik untuk membantu menunjukkan masalah, atau menemukan solusi online.