GNU/Linux >> Belajar Linux >  >> Linux

Cara Melakukan SSH dan SCP Tanpa Password dari SSH2 ke OpenSSH

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:

  1. OpenSSH ke OpenSSH
  2. Buka SSH ke SSH2
  3. 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:

  1. 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.
  2. 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 .


Linux
  1. Login SSH ke server RHEL 7 tanpa kata sandi

  2. Cara Mengatur Login SSH Tanpa Kata Sandi

  3. Cara Menghapus Kata Sandi Dari Kunci SSL Anda

  1. Pengaturan otentikasi berbasis SSH Key dari openSSH ke SSH2

  2. Cara Menjalankan SSH dan SCP dalam Mode Batch (Hanya ketika login Tanpa Kata Sandi diaktifkan)

  3. Cara Menjalankan SCP Tanpa Interupsi Prompt Kata Sandi di Linux

  1. Bagaimana Mengonversi File PPK ke OpenSSH Keys dan Login menggunakan SSH di Linux?

  2. Bagaimana saya bisa melakukan `git pull` tanpa memasukkan kembali kata sandi SSH saya?

  3. Bagaimana cara mengunduh file dari server menggunakan SSH?