構成ファイルでsftp -sサブシステムオプションを設定する方法


11

sftpコマンドは、リモートユーザーがリモートのsftp-server実行可能ファイルを選択し、オプションでそのようなプロセスでsudoにアップグレードできるようにするサブシステムオプション(-s)をサポートしています。

sftp -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server" xxx.yyy.zzz.aaa

このコマンドは〜/ .ssh / configのsshクライアントオプションに従い、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_configまたは〜/ .ssh / configファイルで機能する、文書化されているsshクライアントコマンドの構成オプションはありません。はは。

だから私はそれを提供する別のラッパースクリプトを書きます...

#!/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にハードコードされており、オプション "-S"で制御されているように見えるため、sftpが〜/ bin / sshラッパーファイルを使用できないようになりました。


あなたの目標は何ですか?私はあなたの命令の利益を理解していません。
jirib

3
ベースビルドのとおり、ルートユーザーログインなしでsshを実行します。これにより、sudoユーザーは、gnome gvfsと統合するツールを介して、ルート権限を持つファイルに変更を加えることができます。
トムH

回答:


2

ssh_config(5)manページによると、sshd_config構成ファイルでパスを構成できます。

 Subsystem
         Configures an external subsystem (e.g. file transfer daemon).
         Arguments should be a subsystem name and a command (with optional
         arguments) to execute upon subsystem request.

したがって、これを簡単に実行できるように見えます。

Subsystem sftp /usr/libexec/openssh/sftp-server -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server"

この構成は明らかにクライアント構成ではなくサーバー上で行われます。これはあなたが探していたものですか?欠点は、明らかに、すべての sftp接続がroot権限で実行しようとするため、ファイルへの非rootアクセスが破壊されることです。


はい、クライアント側の何かを探していました。私は質問を更新したアイデアを持っていますが。
トムH

うーん、私は本当にGUIとコマンドラインの回答が欲しいです。larsksは正しい行にあると思いますが、リモートサーバーのサブシステムコマンドは、それ自体がログインを試みるユーザーの権限を「知る」ことができる、または適切に(そして静かに)標準のsftpログインにフェールバックします。
ジュリアンナイト

または、もちろん、WindowsボックスでWinSCPを使用することもできます。それはそうではありませんがふさふさしているようです。
ジュリアンナイト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.