以下の構成にて、SFTPサーバとクラインとを作成します。
使用したOSはサーバ、クライアントともRedHat Enterprise Linux 8.6です。
1.SFTPサーバー設定
※管理者(root)でssh接続して作業しました
・公開鍵認証の有効化
/etc/ssh/sshd_config
PubkeyAuthentication yes
・公開鍵の場所を指定
/etc/ssh/sshd_config
AuthorizedKeysFile .ssh/authorized_keys
・OpenSSHでSFTPを有効化
/etc/ssh/sshd_config
Subsystem sftp /usr/libexec/openssh/sftp-server
・設定ファイルのチェック
/usr/sbin/sshd -t
問題無ければ何も出力されない
設定に問題ががあれば、行とエラー内容が表示がでる
・SFTPの設定反映ためにサービス再起動
systemctl restart sshd
・SFTP接続するユーザーをサーバーで作成
ユーザー作成(SFTPuser01としました)
useradd SFTPuser01
・作成したユーザー(SFTPuser01)に変更
su SFTPuser01
・鍵(キー)作成
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/SFTPuser01.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
全部エンター(空)にしました。
本番ではパスフレーズを入力することを推奨します。
・authorized_keysに公開鍵を登録
cd .ssh/
cat id_rsa.pub >> authorized_keys
・キーのパーミッションの最適化
chmod 600 authorized_keys
2.クライアントへのキーのコピー
作成したユーザーのホームディレクトリにある秘密鍵をクライアントの同ディレクトリにコピー
/home/SFTPuser01.ssh/id_rsa
WinSCPなどで転送したり、id_rsaはテキストなのでコピー&ペーストで同名のファイルを作成しても良いです。本番では暗号化通信環境でコピーすることを推奨します。
3.SFTPクライアントの設定
・キーのパーミッションの最適化
chmod 600 /home/SFTPuser01/.ssh/id_rsa
・SFTPコマンドを実行して接続
sftp -i /home/SFTPuser01/.ssh/id_rsa SFTPuser01@192.168.11.244
Connected to SFTPuser01@192.168.11.244
sftp>
以上でSFTPコマンドが使用可能になります。
ご参考まで。