Dalam artikel kami sebelumnya, kami membahas cara mengatur otentikasi berbasis kunci ssh untuk melakukan ssh dan scp tanpa kata sandi di bawah tiga skenario berikut:
- OpenSSH ke OpenSSH
- Buka SSH ke SSH2
- SSH2 ke SSH2
Dalam artikel ini, saya akan menjelaskan cara melakukan ssh dan scp dari SSH2 (local-host) ke OpenSSH (remote-host) tanpa kata sandi.
1. Identifikasi versi SSH host lokal dan host jarak jauh
Dalam contoh ini, local-host menjalankan SSH2 dan remote-host menjalankan OpenSSH.
[local-host]$ ssh -V ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu [remote-host]$ ssh -V OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006
2. Hasilkan pasangan kunci otentikasi SSH2 di host lokal menggunakan ssh-keygen2
Pada SSH2, ssh-keygen akan menjadi soft-link ke ssh-keygen2 seperti yang ditunjukkan di bawah ini.
[local-host]$ ls -l /usr/local/bin/ssh-keygen lrwxrwxrwx 1 root root 11 Jul 31 2006 /usr/local/bin/ssh-keygen -> ssh-keygen2 [local-host]$ ssh-keygen Generating 2048-bit dsa key pair 7 o.oOo..oOo.o Key generated. 2048-bit dsa, jsmith@local-host, Sun Oct 19 2008 14:49:42 -0700 Passphrase : [Enter the password here] Again : Private key saved to /home/jsmith/.ssh2/id_dsa_2048_a Public key saved to /home/jsmith/.ssh2/id_dsa_2048_a.pub
Kunci publik dan kunci pribadi disimpan di folder .ssh2 di bawah direktori home Anda. Dalam contoh ini, berada di bawah /home/jsmith/.ssh2.
Anda tidak boleh membagikan kunci pribadi dengan siapa pun.
Secara default ssh-keygen2 menghasilkan pasangan kunci DSA (Digital Signature Algorithm). Anda juga dapat membuat pasangan kunci RSA seperti yang ditunjukkan di bawah ini.
[local-host]$ ssh-keygen -t rsa
3. Salin kunci publik SSH2 dari host lokal ke host jarak jauh yang menjalankan OpenSSH
Salin file local-host:/home/jsmith/.ssh2/id_dsa_2048_a.pub ke remote-host:/home/jsmith/.ssh/id_dsa_1024_a.pub. Lakukan vi /home/jsmith/.ssh/id_dsa_1024_b.pub pada host jarak jauh dan salin konten kunci publik dari host lokal.
[remote-host]$ vi /home/jsmith/.ssh/id_dsa_1024_a.pub ---- BEGIN SSH2 PUBLIC KEY ---- Subject: jsmith Comment: "2048-bit dsa, jsmith@local-host Sun Oct 19 2008 14:49:42 -070\0" 7ZTVd7H63VyVqBIqfmEBALVa6VKtALZkydlOiPasikEQfujH07tjW+OffaRufFDG0VQESj 5iGSvMtmBBj8wQxGlvJ/dayVqBvvHzMao8bwGC+HFUtH1un7uyIEwOqU1fNzEpghC97mIx tIxJA7ZTVd7H63VIqmzlLbp/ZCd6bcJLvZEepMz96nlNB4NJ5UYIfdgXNhf/TrJD8COWQs t6jsP6RG/WrpHi5iGSvMtmBBj8wQGHddexkRnf/o5YMFJZRo4Iwc7+bgYrIyywBZnfLL7T RTk9TBfWzgJHy/y1tTtCMvVooWvFZbG5AiV3de63MxBaD0o68SASyXZzVM+MabXhjcdXFY 2vjq2vJxOzunEAAAAVAOTeOzDCnj3K5iGSvMtmBBj8wQGHAAABAA38sGpHEfSxLx5MjQci dko1pKuV1W9rOK3y19A2J2N6rSdWYb7Zyzw8Gr7kTMWX1TP5WhRGCUhNRYnjI+4wgZIZdC lfGdp8MGI3HBg9CAr702BOzRTMnW0aqsGjrbhcwhWaDgRymhBh++nGAhHxeWn4ApJ8F6kT 8HaAm3dFYXpHCaZ/xuKPXr4DFugGl8MRDU8TwioNE9kRi0Ko/kB5LTHuGhMPHGshMJeVGi PQTrt9NAzgYyJeT9RB9VZadgElMvQ9S0+fo6ipOA== ---- END SSH2 PUBLIC KEY ----
4. Di local-host, buat file ~/.ssh2/identification
Buat file berikut di local-host.
$ vim ~/.ssh2/identification IdKey id_dsa_2048_a
5. Pada remote-host, ubah kunci publik SSH2 menjadi kunci publik OpenSSH
Ini harus dijalankan pada host jarak jauh yang menjalankan OpenSSH. Hanya OpenSSH yang dapat mengonversi kunci bolak-balik antara format OpenSSH dan SSH2.
[remote-host]$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > \ ~/.ssh/id_dsa_1024_a_openssh.pub
Salin kunci publik OpenSSH yang dikonversi dari file ~/.ssh/id_dsa_1024_a_openssh.pub ke file otor_keys seperti yang ditunjukkan di bawah ini.
[remote-host]$ vi ~/.ssh/authorized_keys ssh-dss 5iGSvMtmBBj8wQdegAEBALVa6VKtALZkydlOiPasikEQfujH07tjW+OffaRufFD G0VQESjq+YlVTWcXxStz0xGlvJ/dayVqBvvHzMao8bwGC+HFUtH1un7uyIEwOqU1fNzEpgh C97s143S8zBcTAGtdegte3IqmlLbp/ZCd6bcJLvZEepMz96nlNB4NJ5UYIfdgXNhf/TrJD8 COWQst6jsP6RG/WrpHiI4QVDM6tZVZ4CnGjm1QPkRnf/o5YMFJZRo4Iwc7+bgYrIyywBZnf LL7TRTk9TBfWzgJHy/y1tTtCMvVooWvFZbG5AiV3de63MxBaD0o68SASyXZzVM+MabXhjcd XFY2vjq2vJxOzunEAAAAVAOTeOzDCnj3K5iGSvMtmBBj8wQGHAAABAA38sGpHEfSxLx5MjQ dFYXpHCaZ/xuKPXr4DFugGl8MRDU8TwioNE9kRi0Ko/kB5LTHuGhMPHGshMJeVGiPQTrt9N AzgYyJeT9RB9VZadgElMvQ9S0+fo6ipOA==
6. Siapkan izin yang tepat pada host jarak jauh ke direktori .ssh
Pada remote-host yang menjalankan openSSH, pastikan untuk mengatur izin berikut. Tanpa ini, Anda akan memiliki semua jenis masalah aneh dengan ssh.
$ chmod 755 ~ $ chmod 755 ~/.ssh $ chmod 644 ~/.ssh/authorized_keys
7. Login dari local-host ke remote-host menggunakan otentikasi kunci SSH
Lakukan ssh dari local-host (SSH2) ke remote-host (OpenSSH) seperti yang ditunjukkan di bawah ini untuk memverifikasi apakah otentikasi berbasis kunci berfungsi dengan baik.
[local-host]$ [You are on local-host here] [local-host]$ ssh -l jsmith remote-host Host key not found from database. Key fingerprint: bitaz-navun-gogus-mptop-ljilk-qwlem-ftrtm-llmak-topok-zuiof-bnmix You can get a public key's fingerprint by running % ssh-keygen -F publickey.pub on the keyfile. Are you sure you want to continue connecting (yes/no)? yes Host key saved to /home/jsmith/.ssh2/hostkeys/key_22_remote-host.pub host key for remote-host, accepted by jsmith Sun Oct 19 2008 15:06:42 -0700 Passphrase for key "/home/jsmith/.ssh2/id_dsa_2048_a" with comment "2048-bit dsa, jsmith@local-host, Sun Oct 19 2008 14:49:42 -0700":[Enter password] Last login: Sun Oct 19 14:01:48 2008 from 192.168.1.10 [remote-host]$ [You are on remote-host here]
Catatan :Jika Anda mendapatkan kesalahan berikut saat melakukan ssh atau scp dari host lokal ke host jarak jauh, silakan lihat Cara mengatasi masalah negosiasi Algoritma yang gagal di SSH, untuk memperbaiki masalah ini.
[local-host]$ ssh -l jsmith remote-host warning: Authentication failed. Disconnected; key exchange or algorithm negotiation failed (Algorithm negotiation failed.)
Ada dua cara untuk melakukan ssh dan scp tanpa memasukkan kata sandi:
- Tidak ada frasa sandi: Saat membuat pasangan kunci, biarkan frasa sandi kosong. Gunakan opsi ini untuk pemrosesan batch otomatis. untuk misalnya jika Anda menjalankan tugas cron untuk menyalin file antar mesin, ini adalah opsi yang cocok. Anda dapat melewati langkah langkah berikutnya untuk metode ini.
- Gunakan frasa sandi dan Agen SSH :Jika Anda menggunakan ssh dan scp secara interaktif dari baris perintah dan Anda tidak ingin menggunakan kata sandi setiap kali Anda melakukan ssh atau scp, saya tidak merekomendasikan opsi sebelumnya (tanpa frasa sandi), karena Anda telah menghilangkannya tingkat keamanan dalam otentikasi berbasis kunci ssh. Sebagai gantinya, gunakan frasa sandi saat membuat pasangan kunci dan gunakan Agen SSH untuk melakukan ssh dan scp tanpa harus memasukkan kata sandi setiap kali seperti yang dijelaskan pada langkah-langkah di bawah ini.
8. Mulai Agen SSH di host lokal
Agen SSH akan berjalan di latar belakang untuk menahan kunci pribadi dan menjalankan ssh dan scp tanpa harus memasukkan frasa sandi beberapa kali.
[local-host]$ ssh-agent $SHELL
9. Muat kunci pribadi ke agen SSH di host lokal
[local-host]$ ssh-add Adding identity: /home/jsmith/.ssh2/id_dsa_2048_a.pub Need passphrase for /home/jsmith/.ssh2/id_dsa_2048_a (2048-bit dsa, jsmith@local-host, Sun Oct 19 2008 14:49:42 -0700). Enter passphrase:[Enter your passphrase here]
10. Lakukan SSH atau SCP dari local-host ke remote-home tanpa memasukkan password
[local-host]$ [You are on local-host here] [local-host]$ ssh -l jsmith remote-host Last login: Sun Oct 19 14:20:48 2008 from 192.168.1.10 [remote-host]$ [You are on remote-host here]
Jika Anda menyukai artikel ini, silakan bagikan di lezat dan tersandung .