Saya malas di rumah dan menggunakan otentikasi kata sandi untuk mesin rumah saya. Saya siap untuk pindah ke otentikasi berbasis kunci. Ada banyak pilihan di web tentang cara untuk melakukan hal ini, termasuk catting kemudian sshing kunci atas, scping kunci atas langsung, dll.
Saya mencari cara termudah dan direkomendasikan untuk menyalin kunci, semoga ada pembungkus kenyamanan di suatu tempat di paket ssh Ubuntu?
The ssh-copy-id perintah (dalam openssh-klien paket dan diinstal secara default) melakukan hal ini:
ssh-copy-id user@hostname.example.com
menyalin kunci publik dari identitas default Anda (gunakan -i identity_file untuk identitas lain) ke host jarak jauh.
Identitas default adalah kunci ssh" standar " Anda. Ini terdiri dari dua file (kunci publik dan pribadi) di ~/.ssh direktori, biasanya bernama identity, id_rsa, id_dsa, id_ecdsa atau id_ed25519 (dan sama dengan .pub), tergantung pada jenis kunci. Jika Anda tidak membuat lebih dari satu kunci ssh, Anda tidak perlu khawatir tentang menentukan identitas, ssh-copy-id hanya akan mengambilnya secara otomatis.
Jika Anda tidak memiliki identitas, Anda dapat membuatnya dengan alat ini ssh-keygen.
Selain itu, jika server menggunakan port yang berbeda dari yang default (22) Anda harus menggunakan tanda kutip dengan cara ini (sumber):
Saya pikir untuk posting di sini masih, karena itu adalah ilustrasi yang baik dari apa yang dapat dicapai dalam kode shell dengan kekuatan ssh. Tapi menggunakan ssh-copy-id adalah cara yang lebih aman untuk melakukannya dengan benar!
Perhatikan bahwa jika folder .ssh belum ada, perintah di atas akan gagal. Selain itu, mungkin lebih baik saat membuat file untuk menetapkan izin minimum yang mungkin (pada dasarnya baca-tulis hanya untuk pemilik). Berikut adalah perintah yang lebih maju:
Tempel konten file kunci publik Anda di bidang itu (termasuk komentar). Kunci seperti itu terlihat seperti:
ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
Di sini, ssh-rsa menunjukkan bahwa kunci adalah kunci RSA, AAAAB3Nza .... UyDOFDqJp adalah kunci yang sebenarnya dan lekensteyn adalah komentar.
Simpan kunci dengan menekan Impor Kunci Publik
Jika semuanya berjalan dengan baik, kunci Anda sekarang harus terdaftar di bawah Kunci SSH:
Paket ssh-import-id perlu diinstal pada mesin yang perlu diakses dari jarak jauh. Paket ini diinstal bersama dengan openssh-server paket karena ini adalah paket yang direkomendasikan untuk openssh-server. Setelah memastikan bahwa ssh-import-id telah diinstal pada mesin klien, jalankan:
ssh-import-id [launchpad account name]
Ini akan mengunduh kunci publik dari server Launchpad melalui HTTPS yang melindungi Anda dari serangan MITM.
Di Ubuntu Lucid dan sebelumnya, Anda dapat mencapai hal yang sama dengan:
ssh-copy-id melakukan hal itu. Saya Tidak yakin mengapa beberapa jawaban lain di sini menambahkan informasi yang tidak akurat. Bantuan menunjukkan hal berikut:
~$ ssh-copy-id -hUsage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname -f: force mode -- copy keys without trying to check if they are already installed -n: dry run -- no keys are actually copied -h|-?: print this help
Saya baru saja mencoba yang berikut pada klien Ubuntu 18.04 dengan server CentOS 7.6 dan itu bekerja seperti pesona. Contoh menunjukkan menggunakan port kustom 2222, dan menentukan kunci publik di ~/.ssh/path-to-rsa.pub
Sebelum menjalankan perintah, saya benar-benar menggunakan -n beralih di akhir untuk melakukan lari kering yang mengkonfirmasi bahwa perintah akan berfungsi sebagaimana dimaksud. Setelah saya mengkonfirmasi itu saya menjalankan perintah lagi seperti di atas, tanpa -n beralih.