スポンサーリンク

CentOSでSFTPサーバーを構築する

スポンサーリンク

1. SFTPの設定 (サーバー側)

1.1. 公開鍵認証の有効化

1. ssh_config を編集して、公開鍵認証を有効にします。

[root@localhost ~]# cd /etc/ssh/
[root@localhost ssh]#
[root@localhost ssh]# ls -l
合計 608
-rw-r--r--. 1 root root     581843  8月  9  2019 moduli
-rw-r--r--. 1 root root       2276  8月  9  2019 ssh_config
-rw-r-----. 1 root ssh_keys    227 12月 11  2022 ssh_host_ecdsa_key
-rw-r--r--. 1 root root        162 12月 11  2022 ssh_host_ecdsa_key.pub
-rw-r-----. 1 root ssh_keys    387 12月 11  2022 ssh_host_ed25519_key
-rw-r--r--. 1 root root         82 12月 11  2022 ssh_host_ed25519_key.pub
-rw-r-----. 1 root ssh_keys   1675 12月 11  2022 ssh_host_rsa_key
-rw-r--r--. 1 root root        382 12月 11  2022 ssh_host_rsa_key.pub
-rw-------. 1 root root       3906 10月 30 19:59 sshd_config
-rw-------. 1 root root       3907  8月  9  2019 sshd_config_20241030
[root@localhost ssh]#
[root@localhost ssh]# vi ssh_config

変更前 (デフォルト)

PubkeyAuthentication yes

変更後

PubkeyAuthentication no

2. sshd を再起動して設定変更を反映させます。

[root@localhost ssh]# systemctl restart sshd
[root@localhost ssh]#

2. キーペアの作成 (クライアント側)

2.1. キーペアの作成

ssh-keygen -t rsa コマンドで公開鍵と秘密鍵を作成します。
※下記はWinodwsの例ですがLinuxでも同じです。

C:\Users\admin> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\admin/.ssh/id_rsa): 何も入力せずにEnter
Enter passphrase (empty for no passphrase): 何も入力せずにEnter
Enter same passphrase again: 何も入力せずにEnter
Your identification has been saved in C:\Users\admin/.ssh/id_rsa
Your public key has been saved in C:\Users\admin/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:C9Kj+URdcIYnnfp81PVqVP+8/5n+KNpHsUNTWyddhoc admin@work01
The key's randomart image is:
+---[RSA 3072]----+
| .oo. ++|
| o++ E.O|
| +. . **|
| . … . *.o|
| . = So . o *.|
| = o .o . * o|
| o . . . o ..|
| o .. .oo|
| . …oo+B|
+----[SHA256]-----+
C:\Users\admin>

C:\Users\[ユーザー名]\.ssh 配下に秘密鍵(id_rsa) と 公開鍵 (id_rsa.pub) が作成されたことを確認します。

3. 公開鍵の登録

3.1. sftp 接続用ユーザーの作成

既存のユーザーを使う場合はこの手順はスキップしてください。

[root@localhost ~]# useradd sftp-user01
[root@localhost ~]#

3.2. 公開鍵の登録

1. SFTP接続用のユーザーでログインまたは、SFTP接続用のユーザーにスイッチし、ホームディレクトリ配下に .ssh ディレクトリを作成します。
※.ssh ディレクトリの権限は 700 に設定します。7 は、所有者(ユーザー)に「読み・書き・実行」の権限を与えることを意味します。

[root@localhost ~]# sudo su - sftp-user01
[sftp-user01@localhost ~]$
[sftp-user01@localhost ~]$ pwd
/home/sftp-user01
[sftp-user01@localhost ~]$
[sftp-user01@localhost ~]$ mkdir .ssh
[sftp-user01@localhost ~]$
[sftp-user01@localhost ~]$ chmod 700 .ssh
[sftp-user01@localhost ~]$
[sftp-user01@localhost ~]$ cd .ssh/
[sftp-user01@localhost .ssh]$
[sftp-user01@localhost .ssh]$ pwd
/home/sftp-user01/.ssh

2. クライアントで作成した公開鍵をサーバーに転送します。

3. id_rsa.pub の内容を authorized_keys に追記します。
authorized_keys は所有者(ユーザー本人)のみに読み書きが許可されるように権限を 600 に設定します。
id_rsa.pub は不要なので削除して問題ありません。

[sftp-user01@localhost .ssh]$ cat id_rsa.pub >> authorized_keys
[sftp-user01@localhost .ssh]$
[sftp-user01@localhost .ssh]$ ls
authorized_keys  id_rsa.pub
[sftp-user01@localhost .ssh]$
[sftp-user01@localhost .ssh]$ chmod 600 authorized_keys
[sftp-user01@localhost .ssh]$
[sftp-user01@localhost .ssh]$ rm id_rsa.pub
rm: 書き込み保護されたファイル 通常ファイル `id_rsa.pub' を削除しますか? yes
[sftp-user01@localhost .ssh]$

4. クライアントからサーバーへの接続

sftp [ユーザー名]@sftpサーバーのホスト名またはIPアドレス コマンドでsftpサーバーに接続します。

C:\Users\admin>sftp sftp-user01@172.168.10.10
The authenticity of host '172.168.10.10 (172.168.10.10)' can't be established.
ED25519 key fingerprint is SHA256:FcT1ua2oBKvwb4XmB+kneORUimnJWrvu1L0W2qNQhLU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Please type 'yes', 'no' or the fingerprint:
Warning: Permanently added '172.168.10.10' (ED25519) to the list of known hosts.
Connected to 172.168.10.10.
sftp>
sftp>
sftp>

以上。

コメント

タイトルとURLをコピーしました