
クライアントはファイルを共有するために sftp サーバーを必要としていたため、amazon ec2 ubuntu マシン上に sftp サーバーを作成し、さまざまなユーザーを追加しました。
ここで必要なのは、ユーザーが winscp または他のクライアント経由で sftp サーバーにログインしたときに、ホーム ディレクトリ内の自分のフォルダーのみが表示され、他のフォルダーは表示されないようにすることです。また、ホーム ディレクトリ内では、ドット (.) で始まるファイルやフォルダーは表示されません。
これは可能ですか? たとえば、以下のスクリーンショット リンクを参照してください。クライアントにトランスクリプト フォルダーを表示/アクセスさせたいだけで、他には何もありません。
答え1
皆さん、ありがとう。最終的にこのリンクのおかげで私のタスクを達成することができました。http://rmtheis.wordpress.com/2011/07/03/setting-up-an-sftp-site-on-amazon-web-services-ec2-creating-an-account-to-share-with-a-third-party-and-restricting-that-account-to-allow-only-sftp/
これは 3 つの部分から構成されます。
- EC2 上に sftp サイトを設定する
- 新しいユーザーアカウントを作成する
- 新しいユーザーアカウントを、SSH権限なしで読み取り専用FTPを実行するように構成する
これは、信頼できるユーザーとの間でファイルを転送するためのものです。私は、そのタスク専用の EC2 インスタンスを使用して、非常に大きなファイルを時々クライアントに送信するのに適したソリューションとしてこれを使用しています。転送が完了したら、インスタンスをシャットダウンまたは削除します。
Amazon Web Services EC2を使用して、Ubuntu Amazon Machine Image (AMI)を選択してサーバーをセットアップします。(AMIは以下から見つけることができます。 Ubuntu 16.04 以降ami-1aad5273 など、無料枠の対象になるものを選択することをお勧めします。
サーバーにsshで接続します:
ssh -i keyfile.pem [email protected]
vsftpdをインストールします:
sudo apt-get install vsftpd
新しいユーザーを作成します:
sudo adduser newusername
AWS マネジメントコンソールを使用して、サードパーティユーザー用の新しいキーペアを生成します。
puttygen を使用して、新しいキー (keyname.pem) をインポートし、その公開キーをコピーします。
サーバー上で、新しいユーザー用の .ssh ディレクトリを作成します。
sudo mkdir /home/newusername/.ssh
公開鍵を に貼り付けます
/home/newusername/.ssh/authorized_keys
。権限を設定します:
sudo chmod 700 /home/newusername/.ssh
sudo chmod 600 /home/newusername/.ssh/authorized_keys
sudo chown -R newusername:newusername /home/newusername/.ssh
ローカル マシンから新しいユーザーの sftp ログインをテストします。
sftp -o IdentityFile=newkeypair1.pem
[email protected]
sftp のみの使用に制限する必要があるユーザー用の新しいグループを作成します。
sudo groupadd sftponly
sudo adduser newusername sftponly
/etc/ssh/sshd_config
サブシステム行を編集して次のように変更します。
Subsystem sftp internal-sftp
そして、次の行を末尾に追加します
/etc/ssh/sshd_config
。
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
EC2 のキーベース認証に必要なファイルを上書きせずに権限を設定します。
sudo chown root:root /home/newusername
sudo chown -R newusername:newusername /home/newusername/.ssh
sudo /etc/init.d/ssh restart
これで、新しいユーザーは sftp で接続できますが、ssh では接続できません。共有したいファイルを に配置し
/home/newusername
、ユーザーとキーを共有します。