Bagaimana cara mengekspor kunci publik SSH saya?

12

Saya perlu mengatur sesi ssh antara dua server dan tidak ingin membuat skrip mengisi nama pengguna dan kata sandi setiap kali.

Namun saya tidak bisa mencari tahu di mana server SSH menggunakan konfigurasi dari.

bash-2.05# ssh -V
Sun_SSH_1.1, SSH protocols 1.5/2.0, OpenSSL 0x0090700f

Saya memiliki file file sertifikat di / etc / ssh / dan ~ / .ssh /. Saya hanya dapat menemukan satu file konfigurasi untuk SSH dan itu ada di / etc / ssh / ssh_config, tetapi tidak mengandung data (semuanya dikomentari).

Adakah yang tahu bagaimana saya bisa mengetahui di mana sertifikat disimpan, atau bagaimana saya bisa mengekspornya sehingga saya bisa mentransfernya ke server lain? Saya berharap file konfigurasi akan memberi saya jawaban, tetapi mereka memberikan sedikit bantuan.

Chris Dale
sumber

Jawaban:

17

Dengan asumsi Anda maksud otentikasi kunci publik pada tingkat pengguna oleh 'sertifikat' dan Anda membuatnya dengan menggunakan ssh-keygendengan lokasi default, mereka harus di tempat di mana ssh-klien Anda akan menemukannya. Kuncinya terdiri dari bagian pribadi, biasanya disimpan di ~/.ssh/id_rsadan bagian publik di ~/.ssh/id_rsa.pub. Yang terakhir harus ditransfer ke server jauh, biasanya ke ~/.ssh/authorized_keys.

Cara termudah untuk mentransfer kunci ke server lain adalah menggunakan ssh-copy-iddengan mesin target. Jika Anda menggunakan lokasi default pada pembuatan, kunci ini akan secara otomatis digunakan.

Catatan, itu /etc/ssh/ssh_configuntuk klien. Di server Anda harus melihat /etc/ssh/sshd_config. Dalam pengaturan Anda, kedua server akan berfungsi sebagai ssh-client dan ssh-server, jadi Anda harus melihat kedua file di kedua ujungnya.

Carsten Thiel
sumber
Sudah bekerja. Terima kasih. Satu-satunya hal yang harus saya lakukan adalah pada klien saya, saya harus menentukan parameter -i (identitas) yang menunjuk ke kunci pribadi.
Chris Dale
2

Anda perlu menemukan kunci publik ssh untuk pengguna yang akan menjadi pengguna login untuk skrip.

Sebagai contoh, Jika saya memiliki serverA dan serverB, saya akan melakukan hal berikut.

sudo adduser scriptrunner
...
sudo su - scriptrunner
ssh-keygen
...
cat .ssh/id_rsa.pub
ssh-rsa AAAAB3Nza...... scriptrunner@serverA

kemudian lakukan hal serupa di ServerB

Kemudian pada serverA, masukkan kunci publik pengguna scriptrunner serverB ke /home/scriptrunner/.ssh/authorized_keys

dan lakukan yang sebaliknya di serverB (menggunakan pengguna scriptrunner serverA di ke berwenang_keys di /home/scriptrunner/.ssh/authorized_keysserverB)

Maka Anda harus dapat melakukannya ssh scriptrunner@serverAdari serverB menggunakan kunci, dan sebaliknya.

Anda juga dapat menggunakan ssh-copy-iduntuk melakukan bit berwenang_kunci.

Tom O'Connor
sumber
1

Untuk membuat koneksi ssh dengan otentikasi kunci publik, pengguna yang memulai koneksi harus memiliki pasangan kunci publik / pribadi. Pada banyak distribusi linux, kunci-kunci ini tidak dibuat secara default dan harus dibuat sendiri oleh pengguna (atau oleh administrator atas nama mereka).

Jika Anda masuk sebagai pengguna yang relevan, buka direktori home Anda dan jalankan

ssh-keygen

Terima semua default, dan pasangan kunci baru akan dibuat di ~ / .ssh / id_rsa dan ~ / .ssh / id_rsa.pub. Sekarang salin kunci publik dan rekatkan ke file ~ / .ssh / otor_keys akun pengguna target di mesin target. Kemudian aktifkan otentikasi kunci publik pada mesin target (di / etc / ssh / sshd_config) dan Anda harus melakukannya dengan baik.

CATATAN : ada banyak kemungkinan jebakan dalam proses ini saat Anda melakukannya untuk pertama kalinya. Semua izin harus benar, dan file harus berada di tempat yang tepat. Mungkin yang terbaik jika Anda mengikuti HowTo seperti ini .

wolfgangsz
sumber