Bagaimana cara menggunakan keyfile untuk mentransfer data dari satu server ke server lain

25

I cant scp, server lain hanya membutuhkan koneksi sftp.

Saat ini, saya coba lakukan

sftp [email protected]:/files> put -r ~/

-i keynametidak bekerja, hanya diselesaikan dengan illegal option -- i.

Jay
sumber

Jawaban:

34

Mencoba:

sftp -o "IdentityFile=keyname" [email protected]

Anda dapat menggunakan -ountuk meneruskan opsi apa pun yang valid ~/.ssh/config.

Celada
sumber
Berhasil. Terima kasih! bagaimana saya menyimpannya di sana secara normal?
Jay
Saya tidak tahu apa yang Anda maksud dengan "simpan di sana secara normal". Jika Anda bermaksud ingin IdentityFileopsi selalu diberikan secara otomatis, periksa jawaban UtahJarhead tentang memasukkannya~/.ssh/config
Celada
4

Salin kunci PUBLIC Anda ke server menggunakan cara tradisional.

Di server:

  • Buat .sshjika tidak ada:
[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
  • Terapkan kunci publik:
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / official_keys"
  • Tetapkan izin yang sesuai. OpenSSH adalah SANGAT ANAL tentang izin file yang dimaksud:
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh / official_keys"

Setelah itu, Anda harus dapat masuk dari klien menggunakan kunci PRIVATE. Untuk mengotomatiskan transfer, Anda ingin menggunakan file batch, yang hanya file teks yang berisi daftar perintah untuk dieksekusi.

echo "put filename.foo /safe/path/filename.foo" >> /tmp/batchfile.txt
sftp -b /tmp/batchfile.txt -oIdentityFile = / path / ke / private_key user @ host

Atau, jangan ragu untuk membuat file ~ / .ssh / config dalam format ssh_config sehingga Anda bisa mengetik ini di masa mendatang:

host sftp -b /tmp/batchfile.txt

Isi sampel dari ~/.ssh/config

Tuan rumah the_hostname
    Nama pengguna pengguna
    IdentityFile / path / ke / private_key
Utah Jarhead
sumber
Saya akan coba ini pada batch berikutnya, solusi di atas melakukan triknya.
Jay
1

Jika Anda ingin mengatur sftp di EC2, artikel ini mungkin bisa membantu

Anshu
sumber
Maaf, benar-benar tidak.
Jay
1
"Jawaban" ini tidak ada hubungannya dengan pertanyaan. Lebih buruk lagi, itu hanya tautan ke halaman yang suatu hari akan menghilang.
John Mayor
0

Saya masuk ke masalah ini baru-baru ini dan apa yang bekerja untuk saya di pengaturan terminal default macbook saya adalah sebagai berikut

sftp -i ./privateFilePath.key [email protected]

Perhatikan bahwa Anda mungkin dipromosikan dengan FILE KUNCI PRIVATE YANG TIDAK DIPROTEKSI! pesan dalam hal ini Anda perlu menjalankan perintah ini untuk memastikan kunci pribadi Anda tidak dapat diakses oleh orang lain.

chmod 600 privateFilePath.key 

Dalam beberapa kasus Anda perlu menempatkan sudo di depan perintah, ini hanya jika Anda bekerja di direktori yang dilindungi admin

Semoga bermanfaat :)

KhaledMohamedP
sumber
Mengapa Anda berharap ini membantu ketika pertanyaan mengatakan bahwa -iopsi tidak berfungsi?
Scott