LoginSignup
16
15

More than 5 years have passed since last update.

SFTP用ユーザを作る

Posted at

SFTP用ユーザが必要になったのでそれを作るメモです。

とりあえず確認

Terminal
$ less /etc/group
$ less /etc/passwd

なんかまあ、グループとかユーザの確認。

ユーザの作成

Terminal
# groupadd username
# useradd -d /home/username -g username username

SFTP用ユーザとSFTP用ユーザのグループを作ります。

# mktemp -u XXXXXXXX
# passwd username

初期パスワードの指定をするのにmkpasswdとかいうコマンドがあるらしいのだけど、入ってなかったのでmktempで代用した……(いいのかなこれ)

# mkdir -p /home/username/.ssh
# touch /home/username/.ssh/authorized_keys
# chmod 0700 /home/username/.ssh
# chmod 0600 /home/username/.ssh/authorized_keys

あとは.sshディレクトリとか作ったりとか。authorized_keysに鍵の追加もしておく。

SSHログイン時のコマンド指定

usernameにログインしたときに最初に実行されるコマンドを指定する。authorized_keysの先頭に書けば良いみたい。

# vi /home/username/.ssh/authorized_keys
~username/.ssh/authorized_keys
-ssh-rsa ...
+command="internal-sftp" ssh-rsa ...

authoriezed_keysの追加した鍵の行の先頭にcommand="internal-sftp"を追加する。

sshd周りの設定

上でcommandの設定したからForceCommandの指定は要らなかったかも……

/etc/ssh/sshd_config
# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       ForceCommand cvs server

Match User username
       X11Forwarding no
       AllowTcpForwarding no
       ForceCommand internal-sftp

ChrootDirectoryも指定した方がいいのかな。

sshdの再起動

# service sshd restart

sshdを再起動して設定を反映させる。

確認

Terminal
$ sftp -o IdentityFile=/path/to/private-key -P port username@ipaddr
Connected to ipaddr.
sftp>

SFTPで接続できた。

Terminal
$ ssh -o IdentityFile=/path/to/private-key -p port username@ipaddr
This service allows sftp connections only.
Connection to ipaddr closed.

SSHだと接続が切断された。

これでSFTP用のユーザができるはず。

16
15
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
16
15