さくらVPSでCentOS7 7.sftp接続


はじめに

自由にテスト出来るLinuxのサーバーがほしくて、さくらVPSで構築してみました。
順次手順をアップしていく予定です。

今回は、sftpのインストール・設定をします。

目次

  1. 申し込み
  2. CentOS7インストール
  3. SSH接続
  4. Apache・PHPインストール
  5. MariaDBインストール
  6. FTP接続
  7. sftp接続
  8. phpMyAdminインストール
  9. 環境のバックアップ
  10. Ruby On Railsインストール
  11. RailsプロジェクトをGitで共同開発

sftp設定

sftpはSSHの仕組みを使用してファイルの受送信するプロトコルです。

接続アプリは前回のFTP接続で使ったWinSCPを利用します。

sftpは2種類のユーザ設定をしようと思います。

  1. 一般作業用ユーザにsftp設定

    現在一般作業用ユーザは、sshでの接続と、sudoの特権レベルが使えるようにしてあります。このユーザにsftp設定をします。

  2. sftp専用ユーザの設定

    sftpのみ利用できるユーザを作成します。
    アクセスできるフォルダも、/var/www/以下のみに制限します。

ユーザー sshログイン sudo権限 sftp
一般作業用
SFTP専用 × ×

一般作業用ユーザにsftp設定

SSHの設定は出来ていますので、WinSCPの設定だけで接続できます。

鍵認証を使った接続

SSH接続時に作成した公開鍵と秘密鍵を使って接続します。
接続アプリは前回のFTP接続で使ったWinSCPを利用します。

  • WinSCP起動



  • ログイン設定

    左側の「新しいサイト」を選択し、「セッション」を設定
    転送プロトコル:SFTP
    ホスト名: 153.126.209.124 ←ホストのIPアドレスまたはURL
    ポート番号:2022 ←SSH接続設定時に変更したポート番号
    ユーザ名:sakura
    パスワード:(不要)


  • 秘密鍵の設定

    • パスワードの下の[設定(D)…]をクリックすると、下記のダイアログが開きます。



    • 左側から「認証」を選択



    • 秘密鍵のテキストボックス右端の[…]をクリックしてファイル選択ダイアログを開き、SSH接続設定時に作成した秘密鍵の保存されたフォルダを選択します。



    • 選択するファイルの種類を「すべてのファイル(*.*)」にすると、鍵ファイルが表示されますので、「id_rsa」ファイルを選択し、[開く(O)]をクリックします。



    • 「確認」ダイアログが表示されますので、[OK]をクリックします。



    • 「パスフレーズの入力」ダイアログが開きますので、SSH接続設定で公開鍵・秘密鍵を作成する時に設定した「鍵のパスフレーズ」を入力し[OK]をクリックします。



    • 「変換された秘密鍵を保存」ダイアログが開きますので[保存(S)]で保存し、表示された「情報」ダイアログで[OK]をクリックします。



    • 秘密鍵のファイル名が設定されたことを確認して、[OK]をクリック。



    • ログイン設定ダイアログに戻りますので[保存(S)]ボタンをクリックして保存します。



    • [ログイン]をクリック



    • 接続を確認

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インストールをした時に作成したグループで、「/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
    

    ファイルの最後の方に以下の設定があります。

    # 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
    

    これを、次のように変更します。

    # 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.
    

公開鍵・秘密鍵の作成

公開鍵のアップ

公開鍵をユーザのフォルダにアップします。

  • アップする場所を作成

    $ sudo mkdir /home/sftp_only/.ssh
    $ sudo chmod 700 /home/sftp_only/.ssh
    $ sudo chown -R sftp_only:sftp_only /home/sftp_only/.ssh
    
  • 公開鍵をアップ

    公開鍵をドラッグ&ドロップ

    SCPに「~/」を入力して[SCP]をクリック



  • アップしたファイルをリネーム

    $ 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起動



  • ログイン設定

    右側の「新しいサイト」を選択し、「セッション」を設定
    転送プロトコル:SFTP
    ホスト名: 153.126.209.124 ←ホストのIPアドレスまたはURL
    ポート番号:2022 ←SSH接続設定時に変更したポート番号
    ユーザ名:ftp_only
    パスワード:(不要)


  • 秘密鍵の設定

    • パスワードの下の[設定(D)…]をクリックすると、下記のダイアログが開きます。



    • 左側から「認証」を選択



    • 秘密鍵のテキストボックス右端の[…]をクリックしてファイル選択ダイアログを開き、SSH接続設定時に作成した秘密鍵の保存されたフォルダを選択します。



    • 選択するファイルの種類を「すべてのファイル(.)」にすると、鍵ファイルが表示されますので、「d_rsa」ファイルを選択し、[開く(O)]をクリックします。



    • 「確認」ダイアログが表示されますので、[OK]をクリックします。



    • 「パスフレーズの入力」ダイアログが開きますので、SSH接続設定で公開鍵・秘密鍵を作成する時に設定した「鍵のパスフレーズ」を入力し[OK]をクリックします。



    • 「変換された秘密鍵を保存」ダイアログが開きますので[保存(S)]で保存し、表示された「情報」ダイアログで[OK]をクリックします。



    • 秘密鍵のファイル名が設定されたことを確認して、[OK]をクリック。



    • ログイン設定ダイアログに戻りますので[保存(S)]ボタンをクリックして保存します。



    • [ログイン]をクリック。



    • 接続を確認。

      フォルダが/wwwになっていて、そこから上には行けないことを確認。


WinSCP自動接続

パスフレーズをスキップするための設定です。
WinSCPに付属の「pageant.exe」を利用します。

  • 起動

    WinSCPがインストールされているフォルダの「PuTTY」フォルダにある「pageant.exe」を起動します。

    C:\Program Files (x86)\WinSCP\PuTTY\pagent.exe
    

    ツールバーにアイコンが表示されます。

    ダブルクリックするとダイアログが開きます。


  • 鍵とパスフレーズを登録

    [AddKey]をクリックし、秘密鍵を選択

    ダイアログが開くので、パスフレーズを入力

    以上で登録完了です。


  • WinSCPでパスフレーズ無しで接続できることを確認します。

次回

sftpの設定が完了しました。
次回は、phpMyAdminをインストールします。

前回:FTP接続
次回:8. phpMyAdminインストール