Amazon EC2 SSHで自分自身をロックします。このサービスはSFTP接続のみを許可します。

Amazon EC2 SSHで自分自身をロックします。このサービスはSFTP接続のみを許可します。

ああ。

ForceCommand internal-sftp/etc/ssh/sshd_configSFTPを介したログインを許可するために前後に、rootAmazon EC2ボックスでSSHをロックしました。

SFTPはまだうまく機能しますが、PuTTYはすぐに停止します。たとえば、次のようになります。

パテ

ここで奇妙なことは、SFTPがまだうまく機能し、現在のようにログインできることですroot(変更のため)。これにより、WinSCPウィンドウが開いており、必要なものを見つけて編集できます。

次のコマンドを使用して別のLinuxシステムから接続しようとしたとき:

ssh -i keyfile.pem [email protected] -p [portnumber]

私は次のような答えを受けました。

This service allows sftp connections only.
Connection to [hostname] closed.

正常に削除しましたが、リモートで実行できForceCommand internal-sftpませ/etc/ssh/sshd_configservice ssh restartsftpプレフィックスを使用してこれを実行すると、機能していると表示されますが、!リスニングポートが変更されていないために機能しないことがわかります。

答え1

ForceCommand internal-sftp構成ファイルを更新するためにサーバーを削除して再/etc/ssh/sshd_config起動し、戻りました。

答え2

sftpプレフィックスを使用してこれを実行すると、機能するとマークされます!

持っている!ただし、!サーバーではなくクライアントでコマンドを実行してください。したがって、クライアントが誤って変更できることを知っておく必要があります。

SFTP プロトコルは、意図的にクライアントがサーバーで実行するコマンドを指定することを許可しません。それはファイル転送プロトコルです。

ただし、実行するファイルにコマンドを書き込むことで、サーバー上でコマンドを間接的にトリガーできます。たとえば、at ジョブを置くことができます (作業ファイルとファイルに何を書き込むかを/var/spool/cron/atjobs知っている場合は、at スプール形式が完全にマイナーではありません)。編集したり、他のcrontabを.SEQ使用したりできます。/etc/crontab通常、SFTP専用ユーザーはホームディレクトリに制限されていますが、ファイルシステム全体へのルートアクセス権がある場合、完全なSSHアクセス権を持たないSFTPは実際にはセキュリティを提供せず、不便です。

したがって:

  1. ダウンロードとsftp/etc/ssh/sshd_config/etc/crontab
  2. ダウンロードしたファイルを編集してその行を削除し、ルート(または初期化システムが必要なもの)で実行されるクローンタスクを追加しますForceCommandservice ssh restart/etc/init.d/ssh restart
  3. 変更されたファイルをアップロードするために使用されますsftp
  4. クローンジョブが実行されるまで待ちます。
  5. sshログインして一時的なクローンジョブを編集するために使用されます。

関連情報