CentOS7でSFTPサーバーを構築し、安全なファイル転送を行う方法をまとめています。
データを暗号化しないで送ることは、できれば避けたいですよね(・ω・)ノ
WindowsでSFTP接続するためにWinSCPを使用します。
SFTP接続に関しての備忘録です。
そもそもSFTPとは何なのか...
SFTP(SSH File Transfer Protocol)
ざっくり簡単にまとめると...
「FTPとは違って、データファイルが安全な壁で守られる」ってことですかね...(のnの)
SSHのサブシステムとして動作するようなので、sshdは動いていることが条件です。
tera termを利用してですが、SSH接続についての備忘録もあります。
今回やることは、
Windows8.1よりSFTP接続するために、まずはWinSCPをインストールします。
WinSCPは、MS-Windows上で動くGUIのFTP、FTPS、SFTPクライアントプログラムらしい。
なんのこっちゃ(・ω・')
ダウンロード
WinSCP download pageへアクセスし、「Installation package」をクリックすると、
日本語版のWinSCPがダウンロードできる。
インストール
ダウンロードしたファイル「WinSCP-5.9.6-Setup.exe」を実行し、インストールしていく。
警告がでるけど無視して「実行」を選択
使用許諾契約書の同意が求められるので、特に問題なければ「承諾」を選択
標準的なインストールを選択して、「次へ」
コマンダーを選択して、「次へ」
問題なければ「インストール」を選択
インストールが終わるので「完了」
寄付はお好みで(・ω・')
WinSCPでSSH接続するために、付属の「puttygen」さんで鍵ペアを作成する。
WinSCPをインストールしたフォルダに「PuTTY」フォルダがあるので、中にいる。
起動したら、「Generate」を選択して、鍵ペアを作る。
緑の枠の中で、マウスをぐるぐる動かすとゲージが増え、マックスになったら鍵が生成される。
最初知らなくてビビったことの一つ(のsの)ノノ
「key comment(任意)」、「key passphrase(任意)」を入力したら
「Save public key」で公開鍵、「Save private key」で秘密鍵をそれぞれ保存する。
ここでは、公開鍵を「public_key.pub」、秘密鍵を「private_key.ppk」として保存した。
SFTP専用のグループとユーザーの作成
グループ作成
groupadd sftp_users
ユーザー作成
useradd sftp_only
passwd sftp_only
usermod -G sftp_users sftp_only
SSH公開鍵認証設定
サーバーに公開鍵を設置と同様(作成したユーザーに置き換える)
SFTPで利用するディレクトリ設定
アクセスするフォルダと実際に操作できるフォルダを設定
chmod 755 /home/sftp_only/ # アクセス先のフォルダ設定
chown root:root /home/sftp_only/ # chrootにするため権限をrootに変更
mkdir /home/sftp_only/files/
chmod 755 /home/sftp_only/files/ # 実際に操作できるフォルダ
chown sftp_only:sftp_users /home/sftp_only/files/
Configファイルの変更
vi /etc/ssh/sshd_config
# 標準のsftpサーバからinternal-sftpに変更する
# Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
# 接続ユーザーのグループが[sftp_users]だった場合、chrootの設定とSFTPの指定
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /home/sftp_only
ForceCommand internal-sftp
設定を反映するためsshd再起動
systemctl restart sshd
インストールしたWinSCPを起動し、「設定」を選択
「認証」>「認証条件」のところで、puttygenで鍵のペアを作成にて作成した秘密鍵を指定し、
「OK」を選択
ホスト名、ユーザー名、パスワードを入力して「保存」を選択
セッション名を好きにつけて「OK」を選択
ここではセッション名をdefaultとした。
保存したセッション名を指定した状態で、「ログイン」を選択
初回は警告が表示されるが、無視して「はい」を選択
問題なくSFTP接続できれば完了
他に記載しておきたいことをまとめていきます。
Authorized_keysに複数の公開鍵を設定
今回、tera termとWinSCPを利用していて、それぞれ公開鍵と秘密鍵が異なるので、
いちいち入れ替えて接続していた。
切り替えがめんどいので、試しにサーバー上のAuthorized_keysに2つの公開鍵を追記したところ...
うまく機能した(-ω-;)
cat 追記したい公開鍵 >> Authorized_keys
keysってそういうことなのかしら...
WinSCPでログ確認
WinSCPにてSFTP接続時にエラーが発生する場合、やはりログを確認するのが手っ取り早い。
WinSCPを起動し、「ツール」から「環境設定」を選択
「ログ」>「ログのオプション」にて「有効にするテキストログのレベル」にチェックする。
これでログの出力がされるようになった。上記画面の状態では、ログファイルは、
「C:⁄Users⁄ユーザー名⁄AppData⁄Local⁄Temp」に作成される。
ロレックス エクスプローラー i 新型
プラダ コピー
弊店はスーパーコピー時計N品
正規品と同等品質のコピー品を低価でお客様に提供します。
安心して購入して下さい。
自身が使用するだけでなく、入学、卒業、誕生日、結婚のお祝い等のギフトにもご利用ください。
ロレックス エクスプローラー i 新型 https://www.gmt78.com/product/detail/3972.htm
ななしさん
いっちばーん!!!