Aku malas di rumah dan menggunakan otentikasi sandi untuk rumah mesin. Saya siap untuk pindah ke kunci otentikasi berbasis. Ada banyak pilihan di web tentang cara untuk melakukan hal ini, termasuk catting kemudian sshing kunci di atas, scping kunci yang lebih langsung, dll.
Saya mencari cara termudah dan cara yang dianjurkan untuk menyalin kunci atas, mudah-mudahan ada yang berkualitas pembungkus di suatu tempat di Ubuntu ssh paket?
I'm sudah menyadari pada cara mematikan password login.
The ssh-copy-id
perintah (dalam openssh-client paket dan diinstal secara default) tidak tepat ini:
ssh-copy-id [email protected]
salinan kunci publik anda default identitas (gunakan -aku identity_file
untuk identitas lainnya) ke remote host.
Default identitas anda "s" ssh key. Ini terdiri dari dua file (public dan private key) di ~/.ssh
direktori, biasanya bernama identitas
, 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 memilih secara otomatis.
Dalam kasus anda tidak memiliki identitas, anda dapat menghasilkan satu dengan alat ssh-keygen
.
Selain itu, jika server menggunakan port yang berbeda dari default (22
), anda harus menggunakan tanda kutip dalam cara ini (sumber):
ssh-copy-id "[email protected] -p <port-number>"
Saya suka jawaban dari Marcel. Saya tidak tahu perintah ini. I've selalu menggunakan apa yang saya telah ditemukan di Oracle situs web:
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 shell kode dengan kekuatan dari ssh
. Tapi menggunakan ssh-copy-id
adalah pasti cara yang lebih aman untuk melakukannya dengan benar!
Perhatikan bahwa jika folder .ssh
sudah tidak ada, perintah di atas akan gagal. Selain itu, mungkin akan lebih baik ketika membuat file untuk mengatur minimum yang mungkin izin (pada dasarnya membaca-menulis untuk pemilik saja). Di sini adalah yang lebih maju perintah:
cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'
Di Ubuntu, anda dapat mengambil kunci anda dari Launchpad:
ssh-import-id [launchpad account name]
Detail:
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. Menyimpan kunci dengan menekan Impor Public Key
5. Jika semuanya berjalan dengan baik, kunci anda sekarang harus terdaftar di bawah SSH keys:
Paket ssh-impor-id
perlu diinstal pada mesin yang perlu diakses dari jarak jauh. Paket ini diinstal bersama-sama dengan openssh-server
paket sebagai it's yang dianjurkan paket untuk openssh-server
. Setelah memastikan bahwa ssh-impor-id
telah diinstal Pada komputer klien, jalankan:
ssh-import-id [launchpad account name]
Ini akan men-download kunci publik dari Launchpad server melalui HTTPS yang melindungi anda dari serangan MITM.
Di Ubuntu Lucid dan sebelum, 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 yang diperlukan untuk mendapatkan tambahan baris baru setelah baris dengan SSH key.
untuk port kustom
ssh-copy-id -i "[email protected] -p2222"
-saya beralih default ke ~/.ssh/id_rsa.pub, jika anda ingin kunci yang lain, menempatkan jalan utama setelah -aku
PERINGATAN: Jika anda tidak menulis -saya akan copy semua kunci anda temukan di ~/.ssh
ssh-copy-id
tidak tepat. Saya tidak yakin mengapa beberapa jawaban yang lain di sini menambahkan informasi yang tidak akurat. Bantuan menunjukkan sebagai berikut:
~$ ssh-copy-id -h
Usage: /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
Aku hanya mencoba mengikuti pada Ubuntu 18.04 klien dengan CentOS 7.6 server dan bekerja seperti pesona. Contoh ini menunjukkan dengan menggunakan port kustom dari 2222
, dan menentukan kunci publik pada ~/.ssh/jalan-ke-rsa.pub
$ ssh-copy-id -i ~/.ssh/path-to-rsa.pub -p 2222 [email protected]
Sebelum menjalankan perintah, saya benar-benar menggunakan -n
beralih pada akhir untuk melakukan dry run yang menegaskan bahwa perintah akan bekerja sebagaimana dimaksud. Setelah saya dikonfirmasi aku berlari perintah lagi seperti di atas, tanpa -n
switch.