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 jay@server.name.com:/files> put -r ~/

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

Jawaban:


34

Mencoba:

sftp -o "IdentityFile=keyname" jay@server.name.com

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


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

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


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 username@url.com

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 :)


Mengapa Anda berharap ini membantu ketika pertanyaan mengatakan bahwa -iopsi tidak berfungsi?
Scott
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.