無効にしましたsftp-server
私のUbuntuコンピュータでは、以下のように。
編集/etc/ssh/sshd_config
そしてこの行をコメントアウトする
#Subsystem sftp /usr/lib/openssh/sftp-server
別のコンピューターで、sftp
コマンドを実行してサーバーに接続します。接続に失敗しました。
sftp [email protected]
subsystem request failed on channel 0
Connection closed
また、FileZillaを使用してそのコンピューターに接続します。 FileZillaはまだフォルダの内容をリストし、ファイルをダウンロードします...
FilezillaはURLを表示します:sftp://[email protected]
FilezillaがSSHサーバーに接続してファイルを転送するために使用した方法はどれですか?
FileZillaは内部でPuTTYPSFTPを使用します。 PSFTPには、sftp
サブシステムを介したSFTPサーバーの起動に失敗した場合にSFTPサーバーを起動するフォールバックメカニズムがあります。
sftp-server
や/usr/lib/sftp-server
などの一般的なパスとPATH
で/usr/local/lib/sftp-server
バイナリを検索します。これが、PSFTP/FileZilla(および私のWinSCPのような他のクライアント-詳細については SFTP要件ページ を参照)がsftp
を無効にしてもSFTP接続を確立できる方法だと思います。サブシステム。
OpenSSH sftp
では、 -s
switch を使用して同じことを実現できます。
-s subsystem | sftp_server
SSH2サブシステムまたはリモートホスト上のsftpサーバーのパスを指定します。 パスは、リモートsshdにsftpサブシステムが構成されていない場合に役立ちます。
例:
sftp -s /usr/lib/sftp-server [email protected]
SFTPを完全に禁止するには、sftp-server
バイナリを完全に削除する必要があります。
それは実際にはほとんど意味がありませんが。シェルアクセスを許可する場合(そうしないとフォールバックメカニズムが機能しません)、とにかくシェルアクセスを使用してより多くの(損傷)方法を実行できるため、SFTPを無効にすることは意味がありません。
フォールバックメカニズムは、基本的に、サブシステムメカニズムを備えていなかったSSH-1サーバーをサポートする方法として存在すると思います。しかし、それはあなたのような状況でも始まります。