SCP dari satu server ke server lain tanpa prompt kata sandi

19

Apa cara terbaik untuk melakukan scpdari satu kotak ke kotak lainnya tanpa meminta kata sandi?

Ada dua server:

  • Server A (10.152.2.10): /home/oracle/export/files.txt

  • Server B (10.152.2.11): /home/oracle/import/

Jika saya ingin mentransfer file menggunakan scpdari server A ke server B tanpa diminta memasukkan kata sandi

[menjalankan ini dari Server A, /home/oracle/export/]

scp files.txt [email protected]:/home/oracle/import

Ini akan meminta saya untuk kata sandi setelah memasukkan perintah.

Saya mengerti bahwa keygen diperlukan untuk dihasilkan dan disalin ke Server A. Dengan demikian [di server A]:

ssh-keygen -t rsa

Ini memberi saya dua file yang disimpan di /home/oracle/.ssh:

id_rsa
id_rsa.pub

1. Apakah saya harus menyalin dua file ( id_rsa, id_rsa.pub) ke server B /home/oracle/.ssh?

Saat melakukan pencarian google untuk hal ini, beberapa artikel menyebutkan tentang menambahkan / menggabungkan ini ke otor_keys.

2. Apakah saya harus membuat file ini sendiri?

Sepertinya saya bingung bagaimana cara yang benar untuk melakukan ini.

Btw, kedua server menjalankan Suse Linux Enterprise Edition 9 ...

jimmij
sumber
1
Coba 'gantungan kunci': gentoo.org/proj/en/keychain

Jawaban:

16
  1. Tidak, Anda simpan id_rsasendiri; namun, id_rsa.pubyang merupakan kunci publik Anda, dapat disalin ke server yang ingin Anda akses. Gabungkan mereka sampai akhir ~/.ssh/authorized_keys.
  2. Ya, Anda dapat membuat ~/.ssh/authorized_keysjika belum dibuat; jika tidak, tambahkan saja ke akhir file, gunakan cat id_rsa.pub >>~/.ssh/authorized_keys.
mipadi
sumber
11

Juga ada alat yang menyortir semua ini untuk Anda yang dipanggil ssh-copy-id.

Itu akan menambahkan kunci di agen Anda jika Anda memiliki satu berjalan ke authorized_keysfile dan membuatnya jika tidak ada dengan izin yang tepat. Jika Anda tidak menjalankan agen, Anda dapat menentukan kunci untuk mendorong dengan -i:ssh-copy-id -i ~/.ssh/id_rsa

mauilion
sumber
5

Anda juga harus memeriksa izin pada berbagai file dan direktori:

authorized_keys needs perms of 600 (chmod 600 authorized_keys)
the .ssh directory should be 700
your home directory should be at most 744

Direktori rumah Anda tidak boleh ditulis oleh siapa pun selain Anda.

dr-jan
sumber
0

Jika Anda mengonfigurasi kunci yang dihasilkan dari ssh-keygentetapi transfer kata sandi lebih sedikit tidak berfungsi, maka verifikasi kunci publik yang digunakan pada mesin sumber dalam perintah mode verbose seperti di bawah ini:

sftp -v -oPort=22 userid@server

Biasanya mengacu pada kunci publik /home/<user>/.ssh/id_rsa.pub yang mungkin berbeda dari yang Anda hasilkan menggunakan ssh-keygen. Anda perlu menambahkan ini id_rsa.pubdi server tujuan.

Raj
sumber
0

Saya akan melakukan hal berikut:

Pada klien:

ssh-keygen -t rsa
ssh-copy-id [email protected]

Ini menyalin kunci dari klien ke server. Anda akan memerlukan kata sandi server untuk membuatnya menambahkan kunci Anda ke cincinnya.

  • Otentikasi kata sandi perlu diaktifkan atau Anda perlu menyerahkan keyfile ke server.

Di Server:

Paling tidak saya akan mematikan, otentikasi kata sandi.

Michael Prokopec
sumber