Sftp komutu, uzak kullanıcının uzak sftp sunucusu yürütülebilir dosyasını seçmesine ve isteğe bağlı olarak işlemdeki sudo'ya yükseltmesine olanak tanıyan bir alt sistem seçeneğini (-s) destekler;
sftp -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server" xxx.yyy.zzz.aaa
Bu komut ~ / .ssh / config içindeki ssh istemci seçeneklerini tanımlar ve pubkey ile özel bağlantı noktası ve kullanıcı ayarlarının saydam kullanımına izin verir.
Ancak subsystem
, sftp'ye özgü olduğu ve bu nedenle yapılandırma dosyasında ayarlanmadığı ve sftp için bir komut satırı seçeneği olarak ayarlanması gerektiği görülmektedir.
Bununla birlikte, bazı araçlar sftp invocation'ı sarar, böylece alt sistem seçeneğini ayarlamak imkansızdır ve bu nedenle kullanıcı erişimi ile sıkışmış olur.
Bunu genel olarak openssh sftp için ayarlamak için kullanabileceğim bazı yapılandırma seçeneği dosyası var mı?
gnome nautilus'un dosya yöneticisi entegrasyonu için sftp'yi çağırma şeklini etkileyen bazı yapılandırma dosyaları var mı?
Olası hacky ama işlevsel çözümü güncelleme ...
Bu nedenle, sftp'nin seçenekler için kullanacağı hiçbir açık yapılandırma dosyası olmadığı ortaya çıktı, bu yüzden bu yolu yoluma koyarak seçili ana makinelerim için seçeneği açıkça eklemek için genel bir sarmalayıcı komut dosyasını değiştirdim;
#!/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
Ancak sudoers dosyanıza bağlı olarak, genellikle sudo çalıştırmak için bir tty gerekir, bu nedenle ssh için "-t" seçeneğini geçmeniz ve ne olduğunu tahmin etmeniz gerekir? ssh_config veya ~ / .ssh / config dosyalarında çalışan belgelenmiş ssh istemci komutu için yapılandırma seçeneği yoktur. haha.
Bunu sağlamak için başka bir sarıcı komut dosyası yazıyorum ....
#!/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"
Her ne kadar, şimdi sftp içine sftp sabit kodlanmış ve bir seçenek "-S" tarafından kontrol gibi görünüyor, ~ / bin / ssh sarmalayıcı dosyasını kullanmak için sftp almakta sorun yaşıyorum