Perintah ssh-copy-id Linux: pasang kunci publik pada akun remote
Perintah ssh-copy-id menambahkan kunci publik lokal ke daftar kunci yang diizinkan pada akun remote untuk menyiapkan login Secure Shell (SSH). Perintah ini memasang kunci publik, bukan mengirim kunci privat ke server.
Anda harus sudah dapat mengautentikasi akun tujuan dengan kata sandi atau metode lain yang diterima. Pilih berkas publik secara eksplisit dengan -i agar kunci yang dipasang sesuai tujuan. Dalam pemeriksaan biasa, alat mencoba koneksi SSH untuk menyaring kunci yang sudah dapat digunakan.
Sintaks dan prasyarat
ssh-copy-id [opsi] [pengguna@]host
opsi dan pengguna@host adalah penanda. Ganti akun, alamat, dan port dengan nilai sebenarnya. Periksa man ssh-copy-id pada sistem lokal karena ketersediaan serta pilihan implementasi dapat berbeda. Jangan menganggap semua komputer yang mempunyai ssh juga menyediakan ssh-copy-id.
Siapkan pasangan kunci lokal dan akun remote yang benar. Jika belum membuat kunci, gunakan panduan ssh-keygen untuk pasangan kunci dan sidik jari. Kunci privat tetap berada pada klien; hak memasang kunci publik di satu akun tidak memberi akses ke akun lain.
Tujuan bawaan yang lazim adalah ~/.ssh/authorized_keys pada akun remote. Tanda ~ di sisi itu menunjuk direktori pribadi akun remote, sedangkan ~/.ssh pada argumen -i menunjuk direktori pribadi pengguna lokal. Kebijakan server dapat memakai lokasi kunci lain atau membatasi autentikasi kunci publik, sehingga periksa prosedur administrator bila lingkungan berbeda.
Memeriksa kunci yang akan didaftarkan
ssh-keygen -lf ~/.ssh/id_ed25519_work.pub
Pastikan sidik jari cocok dengan kunci yang Anda maksud. Akhiran .pub membantu mengenali berkas publik, tetapi nama berkas sendiri tidak membuktikan bahwa isinya benar. Jangan memilih kunci hanya berdasarkan komentar atau nama yang mirip.
Pada ssh-copy-id, -i memilih berkas publik untuk dipasang. Pada ssh saat login, -i biasanya memilih identitas privat yang berpasangan. Bedakan kedua penggunaan itu agar tidak mencoba memasang berkas privat sebagai kunci publik.
Pratinjau kunci tanpa memasangnya
ssh-copy-id -n -i ~/.ssh/id_ed25519_work.pub alice@server.example.com
Jika implementasi mendukung -n, alat menampilkan kunci yang akan dipasang tanpa menambahkannya ke daftar remote. Tinjau kunci, akun, dan host tujuan sebelum menjalankan bentuk pemasangan.
Pratinjau ini tetap dapat mencoba koneksi SSH untuk pemeriksaan kunci. Jangan menganggap -n sebagai mode offline atau jaminan tidak ada prompt autentikasi dan pemeriksaan host. Verifikasi sidik jari kunci host server melalui jalur tepercaya sebagaimana pada koneksi SSH dan pemeriksaan identitas server.
Jika pemeriksaan menunjukkan semua kunci sudah dapat digunakan, periksa login dengan kunci itu dahulu. Jangan menambahkan -f hanya untuk memaksa pesan jumlah kunci baru muncul; periksa alasan kunci dilewati terlebih dahulu.
Menambahkan kunci publik pada akun remote
ssh-copy-id -i ~/.ssh/id_ed25519_work.pub alice@server.example.com
Setelah pratinjau dan identitas host benar, jalankan perintah tanpa -n. Anda mungkin diminta autentikasi akun untuk memasang kunci. Frasa sandi untuk membuka kunci privat lokal berbeda dari kata sandi akun server; baca prompt sebelum memasukkan nilai.
Dalam penggunaan standar, kunci yang belum dapat digunakan ditambahkan ke authorized_keys akun alice. Berkas dan direktori terkait dapat dibuat bila diperlukan. Penambahan ini mempertahankan kunci lain; jangan mengganti seluruh daftar dengan satu kunci baru untuk menyederhanakan pemasangan.
Jika muncul galat, pisahkan kegagalan koneksi, autentikasi awal, izin berkas akun remote, dan kebijakan layanan SSH. Pemasangan tidak dapat melewati pembatasan server hanya karena berkas publik lokal dapat dibaca.
Memastikan login setelah pendaftaran
ssh-copy-id -i ~/.ssh/id_ed25519_work.pub user@server.example.test
user dan server.example.test adalah contoh akun serta host lain yang harus diganti. Pesan berikut dapat muncul saat satu kunci berhasil ditambahkan:
Number of key(s) added: 1
Jumlah kunci ditambahkan bukan bukti semua konfigurasi login sudah benar. Dari terminal lokal baru, coba ssh -i ~/.ssh/id_ed25519_work user@server.example.test dengan akun, host, dan port yang sama seperti pemasangan. Untuk contoh alice sebelumnya, gunakan ssh -i ~/.ssh/id_ed25519_work alice@server.example.com.
Perhatikan metode autentikasi yang benar-benar berhasil. Klien dapat mencoba identitas lain atau beralih ke kata sandi, sehingga sekadar masuk tidak membuktikan kunci yang baru dipasang diterima. Untuk pemeriksaan terarah, tambahkan -o IdentitiesOnly=yes -o PreferredAuthentications=publickey pada klien SSH dengan identitas yang dipilih; gunakan -v bila perlu menelusuri prosesnya.
Permintaan frasa sandi kunci lokal masih dapat muncul pada autentikasi kunci publik dan bukan berarti server meminta kata sandi akun. Bila server mewajibkan beberapa faktor, sesuaikan penilaian dengan kebijakan itu: pengujian yang hanya menawarkan kunci publik belum memenuhi seluruh faktor yang diwajibkan.
Pertahankan sesi yang masih bekerja selama pengujian. Jangan menonaktifkan autentikasi kata sandi hanya berdasarkan pesan sukses ssh-copy-id; pastikan akses dari terminal baru, akun administrator lain, dan jalur pemulihan yang diperlukan sudah tersedia.
Opsi yang sering dipakai
| Opsi | Fungsi dan catatan |
|---|---|
-i berkas_publik |
Memilih kunci publik yang hendak dipasang. |
-n |
Menampilkan rencana kunci tanpa memasangnya. |
-p port |
Memilih port SSH server; gunakan angka sebenarnya. |
-s |
Memakai SFTP pada implementasi yang mendukungnya. |
-f |
Melewati pemeriksaan apakah kunci sudah digunakan; dapat menghasilkan duplikasi. |
SSH File Transfer Protocol (SFTP) memungkinkan mode -s mengambil daftar authorized_keys, memodifikasinya secara lokal, lalu mengunggahnya kembali. Ini berguna ketika server membatasi perintah shell remote, tetapi tetap memerlukan autentikasi dan izin yang benar.
Mode paksa -f bukan perbaikan umum untuk semua galat autentikasi. Karena melewati penyaringan kunci yang sudah dapat digunakan, menjalankannya berulang dapat memasang beberapa salinan kunci yang sama. Penjelasan pilihan tersedia pada manual ssh-copy-id dari proyek OpenSSH.
Menghapus kunci yang tepat dan menelusuri masalah
Jika perlu mencabut kunci, cadangkan authorized_keys milik akun remote terlebih dahulu, identifikasi baris publik yang tepat, lalu hapus hanya baris itu. Pertahankan kunci dan opsi pada baris lain. Pastikan Anda mempunyai akses pengganti sebelum mencabut kunci yang sedang dipakai.
Jika login tetap meminta kata sandi akun, periksa identitas privat yang dipilih, akun dan port, isi serta izin authorized_keys, direktori terkait, dan pengaturan layanan SSH. Lokasi daftar yang dipakai server dapat berbeda dari lokasi bawaan ssh-copy-id. Log rinci dapat membantu, tetapi periksa informasi akun, host, dan jalur sebelum membagikannya.
FAQ
Mengapa ssh-copy-id masih meminta kata sandi?
Pendaftaran awal memerlukan metode autentikasi yang sudah diterima. Setelah pemasangan, bedakan kata sandi server dari frasa sandi kunci lokal, lalu periksa metode autentikasi yang benar-benar dipakai dan kebijakan server.
Apakah -n bekerja tanpa menghubungi server?
Jangan mengasumsikannya. -n mencegah pemasangan kunci, tetapi pemeriksaan kunci dapat memakai koneksi SSH. Identitas host dan prompt autentikasi tetap perlu diperhatikan.




