Команда sftp підтримує опцію підсистеми (-s), яка дозволяє віддаленому користувачеві вибирати виконуваний віддалений sftp-сервер і, можливо, оновити до sudo в цьому процесі;
sftp -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server" xxx.yyy.zzz.aaa
Ця команда відкладає параметри клієнтського ssh в ~ / .ssh / config, дозволяючи прозоро використовувати налаштування pubkey та користувацькі порти та налаштування користувача.
Однак, subsystem
схоже, є специфічним sftp, а значить, він не встановлений у конфігураційному файлі, і, здається, він повинен бути встановлений як варіант командного рядка для sftp.
Однак деякі інструменти завершують виклик sftp, тому неможливо встановити параметр підсистеми, а значить, застряг з користувачем.
Чи є якийсь файл параметрів конфігурації, який я можу використовувати, щоб встановити це для openssh sftp взагалі?
чи є якийсь файл конфігурації, який впливає на те, як gnome nautilus викликає sftp для інтеграції його файлового менеджера?
Оновлення можливого хакі-але функціонуючого рішення - це ...
Отже, виходить, що не існує очевидного конфігураційного файлу, який sftp використовуватиме для параметрів, тому я в остаточному підсумку змінив загальний скрипт обгортки, щоб явно додати параметр для вибраних хостів, поставивши це на мій шлях;
#!/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
Однак залежно від файлу sudoers, як правило, для запуску sudo потрібен tty, тому вам потрібно передати "-t" опцію для ssh, і вгадаєте, що? не існує жодної опції конфігурації для команди ssh-клієнта, яка задокументована у файлах ssh_config або ~ / .ssh / config. ха-ха.
Тож я пишу ще один сценарій обгортки, щоб забезпечити це….
#!/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"
хоча зараз у мене виникають проблеми з отриманням sftp для використання файлу обгортки ~ / bin / ssh, оскільки він, схоже, важко закодований в sftp і керується опцією "-S"