#はじめに
自由にテスト出来るLinuxのサーバーがほしくて、さくらVPSで構築してみました。
順次手順をアップしていく予定です。
今回は、sftpのインストール・設定をします。
#目次
- 申し込み
- CentOS7インストール
- SSH接続
- Apache・PHPインストール
- MariaDBインストール
- FTP接続
- sftp接続
- phpMyAdminインストール
- 環境のバックアップ
- Ruby On Railsインストール
- RailsプロジェクトをGitで共同開発
#sftp設定
sftpはSSHの仕組みを使用してファイルの受送信するプロトコルです。
接続アプリは前回のFTP接続で使ったWinSCPを利用します。
sftpは2種類のユーザ設定をしようと思います。
-
一般作業用ユーザにsftp設定
現在一般作業用ユーザは、sshでの接続と、sudoの特権レベルが使えるようにしてあります。このユーザにsftp設定をします。
-
sftp専用ユーザの設定
sftpのみ利用できるユーザを作成します。
アクセスできるフォルダも、/var/www/以下のみに制限します。
ユーザー | sshログイン | sudo権限 | sftp |
---|---|---|---|
一般作業用 | ○ | ○ | ○ |
SFTP専用 | × | × | ○ |
##一般作業用ユーザにsftp設定
SSHの設定は出来ていますので、WinSCPの設定だけで接続できます。
###鍵認証を使った接続
SSH接続時に作成した公開鍵と秘密鍵を使って接続します。
接続アプリは前回のFTP接続で使ったWinSCPを利用します。
-
ログイン設定
左側の「新しいサイト」を選択し、「セッション」を設定
転送プロトコル:SFTP
ホスト名: 153.126.209.124 ←ホストのIPアドレスまたはURL
ポート番号:2022 ←SSH接続設定時に変更したポート番号
ユーザ名:sakura
パスワード:(不要)
* 左側から「認証」を選択
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/08ac5015-2b3c-9ee2-0f46-a23921964888.jpeg" width=500>
* 秘密鍵のテキストボックス右端の[…]をクリックしてファイル選択ダイアログを開き、SSH接続設定時に作成した秘密鍵の保存されたフォルダを選択します。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/bedb31e9-f741-daac-f9ec-2a9a27ad4737.jpeg" width=500>
* 選択するファイルの種類を「すべてのファイル(\*.*)」にすると、鍵ファイルが表示されますので、「id_rsa」ファイルを選択し、[開く(O)]をクリックします。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/e95e16b8-711d-0e6b-cb7f-b350cd2d498c.jpeg" width=545>
* 「確認」ダイアログが表示されますので、[OK]をクリックします。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/3517fd3b-db11-543b-a9ef-370311103563.jpeg" width=500>
* 「パスフレーズの入力」ダイアログが開きますので、SSH接続設定で公開鍵・秘密鍵を作成する時に設定した「鍵のパスフレーズ」を入力し[OK]をクリックします。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/12d15e4f-0321-d3b5-ee41-fac5824bbf6f.jpeg" width=280>
* 「変換された秘密鍵を保存」ダイアログが開きますので[保存(S)]で保存し、表示された「情報」ダイアログで[OK]をクリックします。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/1316e16b-8f92-5877-6497-4d28d6d80841.jpeg" width=500>
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/c21903a0-0964-4bc7-a52d-9c56c73fbc74.jpeg" width=500>
* 秘密鍵のファイル名が設定されたことを確認して、[OK]をクリック。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/ee26bbc1-a72d-dc6c-61c3-8debe189d378.jpeg" width=500>
* ログイン設定ダイアログに戻りますので[保存(S)]ボタンをクリックして保存します。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/3da6dfa9-d974-702f-b72e-72aa8bc6e66d.jpeg" wodth=300>
* [ログイン]をクリック
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/effc617b-3cfa-ff35-5d67-38512d15f4f4.jpeg" width=500>
* 接続を確認
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/df5f0f41-054f-0a49-72f8-88d21dfd75d3.jpeg" width=500>
##sftp専用ユーザの設定
###sftp専用ユーザ作成
-
sftp専用ユーザ用グループ作成
グループ名は「sftp_users」にします
$ sudo groupadd sftp_users
* sftp専用ユーザ作成
ユーザ名は「sftp_only」にします
```
$ sudo useradd sftp_only
$ sudo passwd sftp_only
ユーザー sftp_only のパスワードを変更。
新しいパスワード: ←任意のパスワードを付ける
新しいパスワードを再入力してください: ←確認用パスワード入力
passwd: すべての認証トークンが正しく更新できました。
-
ユーザをsftp専用グループに追加
$ sudo usermod -G sftp_users sftp_only
* ユーザを「webadmin」グループに追加
「webadmin」グループは、[Apache・PHPインストール](https://qiita.com/Qsugi/items/bf9740f31b4c42eaad91)をした時に作成したグループで、「/var/www」にアクセスできるグループです。
```
$ sudo usermod -a -G webadmin sftp_only
確認
```
$ groups sftp_only
sftp_only : sftp_only webadmin sftp_users
###sshd_config編集
* sftp専用ユーザに制限をかける為、sshd_configに設定を追加します。
```
$ sudo vi /etc/ssh/sshd_config
ファイルの最後の方に以下の設定があります。
```config
override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
Example of overriding settings on a per-user basis
#Match User anoncvs
X11Forwarding no
AllowTcpForwarding no
PermitTTY no
ForceCommand cvs server
これを、次のように変更します。
```config
# override default of no subsystems
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
#
# Chroot
# マッチしたユーザー(グループ)に以下のルールを適用
# sftp_usersグループのみルールを適用
Match group sftp_users
# ルートディレクトリの設定
ChrootDirectory /var/www
X11Forwarding no
AllowTcpForwarding no
# 実行プログラム指定
ForceCommand internal-sftp
-
SSH接続設定の再読み込み
$ sudo systemctl restart sshd
* SSH接続の動作確認
```
$ sudo systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since 水 2018-05-02 13:02:38 JST; 3s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 10267 (sshd)
CGroup: /system.slice/sshd.service
mq10267 /usr/sbin/sshd -D
5月 02 13:02:38 ik1-340-30370.vs.sakura.ne.jp systemd[1]: Starting OpenSSH ...
5月 02 13:02:38 ik1-340-30370.vs.sakura.ne.jp sshd[10267]: Server listening...
5月 02 13:02:38 ik1-340-30370.vs.sakura.ne.jp systemd[1]: Started OpenSSH s...
Hint: Some lines were ellipsized, use -l to show in full.
###公開鍵・秘密鍵の作成
-
「3.SSH接続」の「鍵認証の為の公開鍵と秘密鍵を作成」と同様にTeraTermを使用して鍵を作成します。
※WinSCPでも鍵は作れるのですが、なぜか認証がうまくいかなかったので、TeraTermで鍵を作成しました。
###公開鍵のアップ
公開鍵をユーザのフォルダにアップします。
-
アップする場所を作成
$ sudo mkdir /home/sftp_only/.ssh
$ sudo chmod 700 /home/sftp_only/.ssh
$ sudo chown -R sftp_only:sftp_only /home/sftp_only/.ssh
* 公開鍵をアップ
公開鍵をドラッグ&ドロップ
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/fa1e5dfb-0954-7c6b-7b7e-dfb69acb9735.jpeg" width=500>
SCPに「~/」を入力して[SCP]をクリック
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/c3d0dda8-f421-d4ad-3f56-b42559ffa2c7.jpeg" width=300>
<br>
* アップしたファイルをリネーム
```
$ sudo mv ~/id_rsa.pub /home/sftp_only/.ssh/authorized_keys
$ sudo chmod 600 /home/sftp_only/.ssh/authorized_keys
$ sudo chown -R sftp_only:sftp_only /home/sftp_only/.ssh/authorized_keys
確認
```
$ sudo ls -la /home/sftp_only/.ssh
合計 4
drwx------ 2 sftp_only sftp_only 28 5月 2 13:44 .
drwx------ 3 sftp_only sftp_only 70 5月 2 13:32 ..
-rw------- 1 sftp_only sftp_only 396 5月 2 13:28 authorized_keys
###鍵認証を使った接続
* WinSCP起動
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/34957af4-6629-a286-39e9-91cc6bd2a333.png" width=80>
<br>
* ログイン設定
右側の「新しいサイト」を選択し、「セッション」を設定
転送プロトコル:SFTP
ホスト名: 153.126.209.124 ←ホストのIPアドレスまたはURL
ポート番号:2022 ←SSH接続設定時に変更したポート番号
ユーザ名:ftp_only
パスワード:(不要)
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/e4e2630d-f18f-3eaa-7cc3-122a80e5f884.jpeg" width=500>
<br>
* 秘密鍵の設定
* パスワードの下の[設定(D)…]をクリックすると、下記のダイアログが開きます。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/b4b79f7d-a525-db3d-d3b4-d8ea4e24f994.jpeg" width=500>
<br>
* 左側から「認証」を選択
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/08ac5015-2b3c-9ee2-0f46-a23921964888.jpeg" width=500>
<br>
* 秘密鍵のテキストボックス右端の[…]をクリックしてファイル選択ダイアログを開き、SSH接続設定時に作成した秘密鍵の保存されたフォルダを選択します。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/9842d6b9-c51d-2b22-ea65-d02dc1bf18b9.jpeg" width=500>
<br>
* 選択するファイルの種類を「すべてのファイル(*.*)」にすると、鍵ファイルが表示されますので、「d_rsa」ファイルを選択し、[開く(O)]をクリックします。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/9b5934ae-e249-94c8-f3f7-176be4c2a047.jpeg" width=545>
<br>
* 「確認」ダイアログが表示されますので、[OK]をクリックします。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/3f9005ba-942c-1c76-95c0-eb7009be6dc3.jpeg" width=500>
<br>
* 「パスフレーズの入力」ダイアログが開きますので、SSH接続設定で公開鍵・秘密鍵を作成する時に設定した「鍵のパスフレーズ」を入力し[OK]をクリックします。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/12d15e4f-0321-d3b5-ee41-fac5824bbf6f.jpeg" width=280>
<br>
* 「変換された秘密鍵を保存」ダイアログが開きますので[保存(S)]で保存し、表示された「情報」ダイアログで[OK]をクリックします。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/1729dde1-42df-d21f-256e-cda808122106.jpeg" whdth=500>
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/1c8e0ec4-885e-f3e6-b0ba-2cec0af8ba06.jpeg" width=400>
<br>
* 秘密鍵のファイル名が設定されたことを確認して、[OK]をクリック。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/41c4f015-6b58-e240-a6a0-48339d72b030.jpeg" width=500>
<br>
* ログイン設定ダイアログに戻りますので[保存(S)]ボタンをクリックして保存します。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/e03e8fdf-79dd-a8eb-83b2-53d200112fbd.jpeg" width=300>
<br>
* [ログイン]をクリック。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/e5b60693-0716-6884-ffed-f348e64847d3.jpeg" width=500>
<br>
* 接続を確認。
フォルダが/wwwになっていて、そこから上には行けないことを確認。
<img src="https://qiita-image-store.s3.amazonaws.com/0/222823/b8bdd85a-b19e-46fe-48de-2c31b080631b.jpeg" width=500>
<br>
##WinSCP自動接続
パスフレーズをスキップするための設定です。
WinSCPに付属の「pageant.exe」を利用します。
* 起動
WinSCPがインストールされているフォルダの「PuTTY」フォルダにある「pageant.exe」を起動します。
```
C:\Program Files (x86)\WinSCP\PuTTY\pagent.exe
ツールバーにアイコンが表示されます。
ダブルクリックするとダイアログが開きます。
-
鍵とパスフレーズを登録
[AddKey]をクリックし、秘密鍵を選択
ダイアログが開くので、パスフレーズを入力
以上で登録完了です。
- WinSCPでパスフレーズ無しで接続できることを確認します。
#次回
sftpの設定が完了しました。
次回は、phpMyAdminをインストールします。
前回:FTP接続
次回:8. phpMyAdminインストール