開発

AWS EC2でSFTP操作(アップロード等)が可能なユーザーを作成する方法

現状

EC2インスタンスAMI:Amazon Linux 2 AMI (HVM), SSD Volume Type
FTPソフト:Transmit

  • 実現したいこと:EC2でSFTPからファイル操作できるようにする
  • なぜ実現する必要があるか?:SFTPからファイル操作することに慣れており、SFTPでファイル操作できる環境を構築したい
  • なぜできないの?:デフォルトのユーザーでは、パーミッション権限の問題でファイル操作ができない

普段はセキュリティグループの設定を調整してSFTP接続からファイル操作できていた気がするのですが、なんだか上手くいかなかったので別の方法を試してみることにしました。

解決の方向性

SFTPでアクセスするユーザーにrootユーザーからファイル操作権限を付与する。デフォルトのユーザーでも良いが、今回はSFTPにアクセスするようのユーザーを新たに作成して対応する。

解決方法

1.SFTP用のEC2ユーザーを作成する

参照:ファイルをsftp経由でEC2にアップロード→lsyncdでS3へのアップロード連携を行う

ユーザー権限はALLにしてるはずなのに、記事をもとにSFTP用のユーザーを作成してもSFTPアップロードできませんでした(泣)
どこかで操作間違えた?

2.SSH接続でroot権限に変更

参照:EC2のLinuxインスタンスでrootになる
sudo su -
適当なユーザーでSSH接続して、root権限を確保します。

3.root権限からユーザーを指定して操作可能にする

参照:WASのEC2でSFTPは繋がったけどフィル操作ができない・・・ORZ

chown -R ユーザー名 /var/www/html

root権限で入り直して指定箇所の所有権をユーザーに付与することでSFTP操作が可能になりました。