Der Befehl sftp unterstützt eine Subsystemoption (-s), mit der der Remotebenutzer die ausführbare Datei des Remote-SFTP-Servers auswählen und dabei optional auf sudo aktualisieren kann.
sftp -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server" xxx.yyy.zzz.aaa
Dieser Befehl beschränkt sich auf die ssh-Client-Optionen in ~ / .ssh / config und ermöglicht die transparente Verwendung von Pubkey- und benutzerdefinierten Port- und Benutzereinstellungen.
Es subsystem
scheint jedoch sftp-spezifisch zu sein, und daher wird es nicht in der Konfigurationsdatei festgelegt, und es scheint, dass es als Befehlszeilenoption für sftp festgelegt werden muss.
Einige Tools schließen den SFTP-Aufruf jedoch so ein, dass es unmöglich ist, die Subsystemoption festzulegen, und bleiben daher beim Benutzerzugriff.
Gibt es eine Konfigurationsoptionsdatei, mit der ich diese für openssh sftp allgemein festlegen kann?
Gibt es eine Konfigurationsdatei, die die Art und Weise beeinflusst, wie gnome nautilus das SFTP für die Integration des Dateimanagers aufruft?
Update mögliche hacky-aber-funktionierende Lösung ist ...
Es stellt sich also heraus, dass es keine offensichtliche Konfigurationsdatei gibt, die sftp für Optionen verwendet. Daher habe ich ein generisches Wrapper-Skript geändert, um die Option explizit für meine ausgewählten Hosts hinzuzufügen, indem ich diese in meinen Pfad eingefügt habe.
#!/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
Jedoch abhängig von Ihrer sudoers - Datei, in der Regel laufen sudo erfordert eine tty, so dass Sie die „-t“ Option ssh passieren müssen, und wissen Sie was? Es gibt keine Konfigurationsoption für den dokumentierten Befehl ssh client, der in den Dateien ssh_config oder ~ / .ssh / config funktioniert. Haha.
Also schreibe ich ein anderes Wrapper-Skript, um das bereitzustellen ...
#!/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"
obwohl ich jetzt Probleme habe, das SFTP dazu zu bringen, meine ~ / bin / ssh-Wrapper-Datei zu verwenden, da es fest in SFTP codiert zu sein scheint und durch eine Option "-S" gesteuert wird.
Antworten:
Entsprechend der
ssh_config(5)
Manpage können Sie den Pfad in dersshd_config
Konfigurationsdatei konfigurieren:Es sieht also so aus, als könnten Sie dies einfach tun:
Diese Konfiguration erfolgt offensichtlich auf dem Server , nicht in der Client-Konfiguration. Ist es das, wonach du gesucht hast? Der Nachteil ist natürlich, dass jede SFTP-Verbindung versucht, mit Root-Rechten ausgeführt zu werden, sodass der Nicht-Root-Zugriff auf Ihre Dateien unterbrochen wird.
quelle