Jawaban:
Mencoba:
sftp -o "IdentityFile=keyname" jay@server.name.com
Anda dapat menggunakan -o
untuk meneruskan opsi apa pun yang valid ~/.ssh/config
.
IdentityFile
opsi selalu diberikan secara otomatis, periksa jawaban UtahJarhead tentang memasukkannya~/.ssh/config
Salin kunci PUBLIC Anda ke server menggunakan cara tradisional.
Di server:
.ssh
jika tidak ada:[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / official_keys"
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
Jika Anda ingin mengatur sftp di EC2, artikel ini mungkin bisa membantu
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 :)
-i
opsi tidak berfungsi?