Perintah sftp mendukung opsi subsistem (-s) yang memungkinkan pengguna jarak jauh untuk memilih server sftp-server yang dapat dieksekusi, dan secara opsional memutakhirkan ke sudo dalam proses seperti itu;
sftp -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server" xxx.yyy.zzz.aaa
Perintah ini merujuk pada opsi ssh client di ~ / .ssh / config yang memungkinkan penggunaan pubkey dan port kustom serta pengaturan pengguna secara transparan.
Namun subsystem
tampaknya khusus sftp, dan karenanya tidak diatur dalam file konfigurasi dan tampaknya harus ditetapkan sebagai opsi baris perintah untuk sftp.
Namun beberapa alat membungkus permintaan sftp sehingga tidak mungkin untuk mengatur opsi subsistem, dan karenanya terjebak dengan akses pengguna.
Apakah ada beberapa file opsi konfigurasi yang dapat saya gunakan untuk mengatur ini untuk openssh sftp secara umum?
apakah ada beberapa file konfigurasi yang memengaruhi cara gnome nautilus memanggil sftp untuk integrasi manajer file?
Perbarui kemungkinan solusi peretasan yang berfungsi adalah ...
Jadi ternyata tidak ada file konfigurasi yang sftp akan digunakan untuk opsi, jadi saya akhirnya memodifikasi skrip wrapper generik untuk menambahkan opsi secara eksplisit untuk host yang saya pilih dengan meletakkan ini di jalur saya;
#!/bin/bash
# Generic shell wrapper that performs an operation
OPERATION=/usr/bin/sftp
args=("$@")
#the final arg should contain a hostname of the form [user@]host[:path]
case "${args[@]: -1}" in
myserver.com)
exec $OPERATION -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server" "$args"
;;
*)
exec $OPERATION "$args"
;;
esac
Namun tergantung pada file sudoers Anda, biasanya untuk menjalankan sudo memerlukan tty, jadi Anda harus memberikan opsi "-t" ke ssh, dan coba tebak? tidak ada opsi konfigurasi untuk perintah ssh client yang didokumentasikan yang berfungsi di file ssh_config atau ~ / .ssh / config. ha ha.
Jadi saya menulis skrip pembungkus lain untuk memberikan ....
#!/bin/bash
# Generic shell wrapper that performs an operation
OPERATION=/usr/bin/ssh
args=("$@")
#locating the hostname is not so simple with ssh
exec $OPERATION -tt "$args"
walaupun, saya sekarang kesulitan mendapatkan sftp untuk menggunakan file wrapper ~ / bin / ssh saya, karena tampaknya sulit dikodekan ke dalam sftp dan dikendalikan oleh opsi "-S"