Cara termudah untuk menyalin kunci ssh ke komputer lain?

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?

Saya sudah sadar pada cara mematikan login kata sandi.

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):

ssh-copy-id "user@hostname.example.com -p <port-number>"

Saya suka jawaban dari Marcel. Saya tidak tahu perintah ini. Saya selalu menggunakan apa yang saya temukan di Oracle Database:

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'

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:

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'

Metode grafis

  1. Buka AplikasiKata sandi dan kunciKunci Pribadi Saya.
  2. Pilih kunci Anda dan kemudian klik RemoteKonfigurasi kunci untuk Secure Shell.

Set Up Computer for SSH Connection

Di Ubuntu Anda dapat mengambil kunci Anda dari Launchpad:

ssh-import-id [launchpad account name]

Rincian:

  1. Anda memerlukan Akun Launchpad sehingga login atau buat akun
  2. Setelah masuk, klik tombol di sebelah Kunci SSH:
  3. 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.

  4. Simpan kunci dengan menekan Impor Kunci Publik
  5. 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:

wget https://launchpad.net/~[lp acount name]/+sshkeys -O - >> ~/.ssh/authorized_keys && echo >> ~/.ssh/authorized_keys

The echo perintah diperlukan untuk mendapatkan baris baru tambahan setelah baris dengan kunci SSH.

untuk port kustom

ssh-copy-id -i "user@hostname.example.com -p2222"

- saya beralih default ke~/.ssh/id_rsa.pub, jika Anda ingin kunci lain, menempatkan Jalan kunci setelah-i

Peringatan: Jika Anda tidak menulis-i itu akan menyalin semua kunci Anda ditemukan di~/.ssh

Berikut adalah solusi yang kurang aman, tetapi sangat sederhana(tidak disarankan untuk server):

Pindah ~/.ssh ke mesin baru dan jalankan ssh-add. Selesai!

JAWABAN PANJANG:

  1. Di mesin lama, ambil foldernya ~/.ssh ke drive USB, atau ke penyimpanan lain yang Anda suka.
  2. Pada mesin baru, letakkan folder di bawah ~ aka /home/$USER.
  3. Lari ssh-add, pada mesin baru selesai.

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

$ ssh-copy-id -i ~/.ssh/path-to-rsa.pub -p 2222 myusername@hostname.tld

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.

Jika Anda sudah memiliki kunci host seperti dalam kasus AWS EC2, lakukan ini

cat ~/.ssh/id_rsa.pub | ssh -i hostkey.pem hostname@hostaddress 'cat >> .ssh/authorized_keys && echo "Key copied" '

Lain kali, lakukan saja ini:

ssh hostname@hostaddress