鍵の作成は別稿
http://qiita.com/dahugani/items/e1fc5c212bf6a7365f8f#2-2
だいたいこんな感じだけど、あとでちゃんと書く。
鍵を別に作成する前提だと、ひとつの鍵で複数のサーバーにログインできる。その代わりすべてのサーバーで以下の手順が必要。
ユーザーを作成する
sudo useradd sftpuser
sshでログインできるようにする(鍵認証)
authorized_keysファイルを準備
ホームディレクトリ直下に.ssh
ディレクトリを作成して、authorized_keys
という名称のファイルを配置する。[^1]
sudo su -
cd /home/sftpuser/
ls -la
mkdir .ssh
cd .ssh
vi authorized_keys
ここで鍵のテキストを貼り付け&保存。(鍵の作り方↑)
パーミッション設定
以降は権限設定&オーナー変更(ダサい)
chmod 600 authorized_keys
chown sftpuser:sftpuser authorized_keys
cd ..
chmod 700 .ssh
chown sftpuser:sftpuser .ssh
exit
接続可能か確認(自PC→サーバー)
ssh -i hoge_rsa sftpuser@hostname
rsaファイルはここ(↑)で作成したもの。
sshでログインできないようにするw
sftpだけ使えればいい、sshは使わせたくない、という場合は以下を設定する。
ssh設定ファイルの変更
sudo vi /etc/ssh/sshd_config
設定ファイルの一番下あたりに次の行を追加。
/Match
とかで検索するのがいいかも。
Match User sftpuser
ForceCommand /usr/libexec/openssh/sftp-server
Match User sftpuser,otheruser
ForceCommand /usr/libexec/openssh/sftp-server
sshdを再起動
sudo /etc/init.d/sshd restart
今後のTODO
-
authorized_keysって複数鍵あつかえんの?
→/etc/ssh/sshd_config
のAuthorizedKeysFile
を複数設定?
→そもそも考え方が間違ってたw sftpユーザ追加したのでauthorized_keysはユーザごとにユニーク。その代わりこの設定が必要。 - 作成したユーザーにはホームディレクトリ以下しか触らせたくない。
- ホームディレクトリではなく複数のユーザーで一つのディレクトを見るには?→ln使えばいいだけ?
[^1]: authorized_keysで認証できるのは、AMILinuxの初期設定だかららしい。