3
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

sftpのみ使用するユーザーで鍵認証を使用する

Last updated at Posted at 2017-10-13

環境

クライアント側

  • OS: Windows 10 Pro
  • SSHクライアント: Putty
  • SSH鍵作成ソフトウェア: PuttyGen
  • SFTPクライアント: WinSCP

※Pageantは未使用

サーバー側

  • OS: Raspbian(Debian)
  • SSHサーバー: OpenSSH

sftpサーバーの環境を作る

今回は以下の投稿を参考にして構築した。ここでの投稿での説明は割愛する。

SFTPサーバを用意する - Qiita (usutaniさんの投稿)

https://qiita.com/usutani/items/fdabef73b5dff60c95c6

鍵を作る

クライアント側でPuttyGenで鍵を作成する。鍵の長さは任意に設定しても問題はない。
"Generate"ボタンをクリックし、ウィンドウ内(Keyエリア内)でマウスをゲージが満タンになるまで動かし続ける。満タンになりしばらくすると鍵が作成される。
作成した鍵にコメントを設定した方が良い。任意であるがパスフレーズの設定も行える。セキュリティを高めたい場合は推奨する。
作成したら"Save private key"で保存する。"Public key for pasting into OpenSSH authorized_keys file:"内にある"ssh-rsa ..."をクリップボードにコピーする(メモに控える)。

鍵を許可する

サーバー側でsftpのみ接続するユーザーの".ssh/authorized_keys"のファイルを開く。
控えた公開鍵を追記する。(もし他の鍵がある場合は改行して追記すること)
保存したらファイルは閉じる。

sshd_configの設定

先程の「sftpサーバーの環境を作る」というセクションの追記となる。

Match group sftponly
  ChrootDirectory /home/%u
  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp

これだけだと公開鍵を見つけることができず、認証エラーとなってしまうからだ。その原因はsudo usermod -d / sftp-userのコマンドでホームディレクトリが変更されているからだ。なので、デフォルトであるAuthorizedKeysFile %h/.ssh/authorized_keysの設定が効かないのである。その原因を解決するために以下の設定項目を追記する。

  AuthorizedKeysFile /home/%u/.ssh/authorized_keys

これにより設定はこうなるはずだ。

Match group sftponly
  ChrootDirectory /home/%u
  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp
  AuthorizedKeysFile /home/%u/.ssh/authorized_keys

保存したらSSHサーバーの再起動を忘れずに。

接続テストをする

設定が終わったら接続テストを行う。
高度なサイトの設定ウィンドウでSSH > 認証のセクションに移動する。
認証条件のエリアで秘密鍵を参照し、OKをクリックする。
ログインをクリックする。パスフレーズ設定をしている場合はパスフレーズを入力する。認証できればアクセスができる。

トラブルシューティング

設定がうまくいかなかった場合は以下の内容を見直すと良い。

  • ユーザーは設定したグループに入っているか。
  • .ssh/authorized_keysの権限設定がおかしくないか。
  • SSHサーバーが起動していない。(設定が不適切で起動できていないのが主な原因と思われる)
  • .ssh/authorized_keysのファイル名があるか(スペルミスなどでよくある)

補足

sftpユーザーのルートディレクトリは権限の都合上設置することができない。そのため別途フォルダを作成し、所有権をsftpユーザーに設定しなければならない。

参考文献

  • SFTPサーバを用意する - Qiita (usutaniさんの投稿)

  • chrootされたsftp専用ユーザを作る - Qiita (kawazさんの投稿)

3
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?