Bagaimana Anda bisa melakukan satu liner dengan sftp untuk login dengan kata sandi di baris yang sama?

16

Apakah ada opsi untuk meletakkan kata sandi di telepon juga dengan sftp?

linux~ $ sftp [email protected]:/DIRECTORY_TO_GO_TO/ 

Seperti ini

linux~ $ sftp [email protected]:/DIRECTORY_TO_GO_TO/ -p PASSWORD? 
Daniel
sumber

Jawaban:

13

Umumnya memasukkan kata sandi dalam baris perintah dianggap sebagai risiko keamanan karena akan muncul kepada siapa pun yang dapat menjalankan ps / top, dan itu dapat disimpan dalam riwayat shell Anda.

Akan lebih baik untuk mengatur otentikasi berbasis kunci jika Anda mampu.

Juga, saya tidak percaya itu akan mungkin dengan sftp. Ini dimaksudkan untuk digunakan untuk transfer yang aman. Jika Anda benar-benar harus melakukan sesuatu seperti ini dan Anda tidak punya pilihan lain maka Anda mungkin perlu melihat otomatisasi dengan harapan .

Sakit kepala
sumber
Poin menarik!
Daniel
Akan lebih baik untuk mengatur otentikasi berbasis kunci jika Anda mampu. Itu masuk akal.
Net Runner
Url harapan ini rusak
André Perazzi
4
Tidak dapat memahami mengapa orang memilih jawaban yang tidak memberikan solusi.
itoctopus
33

Seperti yang disebutkan orang lain, kata sandi baris perintah harus menjadi pilihan terakhir.

Namun, jika tidak ada hal lain yang mungkin; satu dapat pergi untuk ssh pass

sshpass -p <password> sftp user@host
Yogesh Nachnani
sumber
2
Ini harus secara besar-besaran dibatalkan. Sangat berguna untuk memiliki sshpass. Beberapa penyedia tidak mengizinkan Anda membuat folder .ssh dan scp juga tidak diizinkan.
NetSquirrel
2
bagus bahwa beberapa alat mendukung Anda: brew search sshpass- "Kami tidak akan menambahkan sshpass karena terlalu mudah bagi pengguna SSH pemula untuk merusak keamanan SSH."
oliver
4
Ini harus menjadi solusi yang diterima. OP bertanya bagaimana melakukan hal khusus ini - bukan untuk saran keamanan (meskipun niatnya baik dan benar).
ebr
6

Jangan lakukan itu - atur otentikasi kunci publik SSH untuk login otomatis.

MikeyB
sumber
Bisakah sftp melakukan ini sama dengan scp?
Daniel
1
@Daniel, baik sftp dan scp dibangun di atas SSH yang memungkinkan untuk otentikasi berbasis kunci.
Zoredache
5

Cukup gunakan perl, ruby ​​atau python untuk skrip apa yang Anda coba lakukan. Dalam kasus ruby ​​itu hanya (diambil dari dokumentasi API net-sftp):

require 'net/sftp'

Net::SFTP.start('host', 'username', :password => 'password') do |sftp|

  # upload a file or directory to the remote host

  sftp.upload!("/path/to/local", "/path/to/remote")

end

Untuk info lebih lanjut http://net-ssh.rubyforge.org/sftp/v2/api/index.html

monomyth
sumber
paramiko adalah python murni (tanpa
lib
3

Seperti jawaban lain telah nyatakan, gunakan otentikasi kunci publik. Ada seri IBM developerWorks hebat, meskipun sedikit ketinggalan jaman yang harus menjelaskan semua yang ingin Anda ketahui tentangnya, serta beberapa alat tambahan yang berguna seperti gantungan kunci.

rvf
sumber
2

Untuk pencari yang tidak peduli bahwa kata sandi dapat dilihat dalam perintah baris perintah:

sftp userid:password@remoteHostadalah cara memasukkan kata sandi dalam sftpperintah koneksi.

UPDATE: ini ternyata salah ... lihat komentar

ashnazg
sumber
OpenSSH v5.3p1 dan v4.3p2, keduanya di Red Hat Enterprise ...
ashnazg
1
Ini ternyata salah ... metode ini tampaknya bekerja untuk saya karena PHP dan ekstensi ssh2 yang digunakan sebelumnya dalam kode saya untuk melakukan otentikasi mandiri yang sebenarnya ... dan perintah sftp sedang dijalankan kemudian. Itu bagian terakhir di mana sintaks tampaknya berhasil.
ashnazg
1
Tidak dapat menyelesaikan pengguna nama host: Tidak ada host seperti itu yang diketahui. Itu sedang mempertimbangkan ":" pada nama pengguna yang tidak terjadi di FileZilla CLI
P Satish Patro
1

Saya menduga bahwa ada banyak jawaban karena ada klien FTP. Server SFTP tidak boleh menerima informasi otentikasi sampai enkripsi dibuat, sehingga pengguna dan kata sandi dilindungi.

Saya percaya klien FileZilla akan memungkinkan untuk melewati baris perintah pengguna dan kata sandi .. lihat dokumentasi di sini . Mengingat reputasi proyek FileZilla, saya berharap untuk beroperasi dengan aman.

tomjedrz
sumber