補足:RHEL8の環境整備(WinSCPによるファイル共有-Win10側)

ソフトウェア
CoxinhaFotosによるPixabayからの画像

先日の投稿で、ホスト/ゲスト間でクリップボードを共有し、相互にテキストデータのコピー&ペーストができるよう環境を整備しました。しかし「scp等ファイル転送」によるファイル共有の実現ついては、具体的な説明をはしょっていたので、補足します。今回はWinSCP(Windows上で動くグラフィカルなファイル転送(FTP/FTPS/SFTP/SCP)クライアントソフト)を使用して、ファイル共有を実現しようと思います。

WinSCPのファイル転送について

WinSCPは、FTP/FTPS/SFTP/SCP等、複数のファイル転送プロトコルをサポートしているようです。その内、SFTPとSCPが主な選択肢になるようなので、ネット情報等を参考にこれらの機能を下表にまとめました。

比較項目SFTPSCP
経路SSH通信路SSH通信路
安全性SSH接続相当SSH接続相当
使用ポートsshポート(デフォルト22番)sshポート
ベースのプロトコルftprcp
パケット確認
転送速度パケット確認を行うため、SCPより遅いSFTPより速い
転送のレジュームできるできない
転送容量4GB超でも可能4GBを超えるファイルを取り扱えない
Linux側の設定OpenSSHの「/etc/ssh/sshd_config」に、
以下設定の追記が必要
「Subsystem sftp /usr/libexec/openssh/sftp-server」
「openssh-clients」のインストールが必要
表1:SFTPとSCPの機能比較

表1より、以下の点で使い勝手の良い「SFTP」を選択しました。

  • ファイル転送にレジューム機能がある
  • 転送容量に4GBの制限がない
  • Linux側の設定がOpenSSHの「/etc/ssh/sshd_config」ファイルの編集で完了する

WinSCPの導入準備

WinSCPを導入する環境について

今回「WinSCP」を導入した環境は、下表の通りです。

SFTPソフト/OSバージョン
クライアント側WinSCPバージョン 5.21.7 (ビルド 12963 2023-01-23)
クライアント側Windows10 Proversion 21H2, build 19044.2486, x86_64
サーバ側Red Hat Enterprise Linux 8.4.0 (Hyper-V仮想端末), x86_64
表2:「WinSCP」の導入環境

WinSCPの取得

WinSCPの公式ページがありますが、窓の杜からのダウンロードがやり易く、公式と同等のインストーラが取得できるようなので、こちらからダウンロードしました。

図1:窓の杜、WinSCPダウンロードページ

ブラウザに該当URLを入力(図1黄枠上)窓の杜、WinSCPダウンロードページが表示されたら、無料マークがある(図1黄枠下)表示域の「窓の杜からダウンロード」(図1赤枠)をクリックすると、ダウンロードが始まりWinSCPインストーラが取得できます。

WinSCPのインストール

ダウンロードしたWinSCPインストーラを任意のフォルダに置き、ダブルクリックしてインストールを行います(表3)。

1ダウンロードしたSetup.exeファイルを、ダブルクリックします。
2インストールモードは、推奨の全てのユーザ用にインストールを選択しました。
3使用許諾契約に同意を求められるので「許諾」ボタンを押下します。
4インターフェイススタイルは、好みで選びます(後で変更可能)コマンダーを選択し、「次へ」ボタンを押下します。
5インストール準備完了と表示されたら「インストール」ボタンを押下します。
6「WinSCPセットアップウィザードの完了」ウィザードが表示されたら「完了」ボタンを押下し、インストールを終了します。
表3:WinSCPのインストール

RHEL8の設定

OpenSSHの設定ファイル「/etc/ssh/sshd_config」に SFTPを有効化する「Subsystem sftp /usr/libexec/openssh/sftp-server」記載があるか確認しました(図2黄枠)。

図2:OpenSSHの設定ファイル「/etc/ssh/sshd_config」の設定を確認

「Subsystem sftp /usr/libexec/openssh/sftp-server」と記載があり、SFTPサーバとして使用可能なようなので、このまま使います。自由なファイル転送が目的なので、WinSCPからの接続にはRHEL8インストール時に作成した管理者ユーザで行います。※本来は、SFTP専用ユーザを作成し、アクセス範囲も、ファイル転送用のフォルダ下に限定して運用するようです。

WinSCPの使い方

WinSCPの初期設定

インストールしたWinSCPの初回起動時、接続設定を促すウィザードが表示されるので、それに従って初期設定を行います(表4)。

1スタートメニューからWinSCPアイコンを選択し、WinSCRを起動します。
2「ログイン」ウィザードが表示されたら転送プロトコルに、「SFTP」を選択します。
3SFTP接続に使うホスト名、ユーザ名を入力(右図赤枠)します。ポート番号は、SSHのポート番号を指定します(今回はデフォルト「22」のまま)。「保存」ボタンを押下します(右図青枠)。
4「セッションの保存名」ポップアップが表示されたら、任意のセッション保存名を入力します。デフォルトで「ユーザ名@ホスト名」と入力されるので、今回はそのまま使用し「OK」ボタンを押下します。
5入力した「セッションの保存名」で接続設定が保存されている(右図赤枠)事を確認し「ログイン」ボタンを押下します(右図青枠)。
6「パスワードの入力」ポップアップが表示されたら、パスワードを入力し「OK」ボタンを押下します。
7「警告」ダイアログが表示され「不明なサーバーに接続し、そのホスト鍵をキャッシュに追加しますか?」と表示されますが、ここは「はい」ボタンを押下で良いようです。詳細については調べていません。
8WinSCPの作業画面が表示されます。右図左青枠が、Windows10端末のディレクトリが表示され、右図赤枠にRHEL8のディレクトリが表示されます。
表4:WinSCPの初期設定

ファイルの転送

WinSCPの作業画面が表示されたら、左側(クライアント側)にWindows10端末のディレクトリが表示(図3青枠)され、右側(サーバ側)にRHEL8のディレクトリが表示(図3赤枠)されます。それぞれ任意のフォルダに移動して、ファイル交換を行います。

図3:WinSCPの作業画面

作業画面のクライアント/サーバ側共、左上に上矢印アイコンが表示されている(図4緑枠)ので、これをクリックすると上階層に移動でき、表示された任意のフォルダアイコンをクリックすれば、下階層に移動できます。図4のクライアント側(図4青枠:C:\temp)/サーバ側(図4赤枠:/tmp/)でファイル交換を行います。

図4:クライアント側(青枠)/サーバ側(赤枠)でファイル交換を行う

クライアント側で移動したいファイルを選択し、左側画面左上の「アップロード」をクリックして表示されるメニューからアップロードを選択(図5赤枠)又は、選択したファイルをサーバ側へドラッグアンドドロップすると、ファイルをアップロードできます(図5)。

図5:ファイルのアップロード

「アップロード」画面が表示されたら、意図した操作か確認します。ファイル “test.txt” をリモートディレクトリ “/tmp/” へアップロードするのは、今回の意図通りなので「OK」を押下します(図6)。

図6:「アップロード」画面

クライアント側からサーバ側へ、対象ファイルがアップロードされる事を確認します(図7赤枠)。RHEL8へは、ログインユーザ所有のファイルとして上げられるようです(図7青枠)。

図7:クライアント側からサーバ側へ、対象ファイルをアップロード

サーバ側で移動したいファイルを選択し、右側画面左上の「ダウンロード」をクリックして表示されるメニューからダウンロードを選択(図8赤枠)又は、選択したファイルをクライアント側へドラッグアンドドロップすると、ファイルをダウンロードできます(図8)。

図8:ファイルのダウンロード

「ダウンロード」画面が表示されたら、意図した操作か確認します。ファイル “lua_xKcnCc” をローカルディレクトリ “C:\temp\” へダウンロードするのは、今回の意図通りなので「OK」を押下します(図9)。

図9:「ダウンロード」画面

クライアント側からサーバ側へ、対象ファイルがアップロードされる事を確認します(図10赤枠)。Windows10へ、rootユーザ所有のファイルをダウンロードしました。特に問題なくダウンロードできました(図10青枠)。

図10:サーバ側からクライアント側へ、対象ファイルをダウンロード

メニュー「セッション」→「セッションを切断」を選択、セッションを切断します(図11赤枠)。

図11:メニュー「セッション」→「セッションを切断」を選択

「SFTP」のセッションが切断され、サーバ側のディレクトリ表示が消えます。※「セッションを再接続」をクリックで、再接続されます(図12赤枠)

図12:「SFTP」のセッションが切断

エクスプローラを開き、クライアント側の対象フォルダ(C:\temp)に RHEL8 のファイルが、格納されている事を確認します(図13赤枠)

図13:クライアント側の対象フォルダを確認

ファイルを開き、サーバ側の対象フォルダ(/tmp)に Windows10 のファイルが、格納されている事を確認します(図14赤黄枠)。

図14:サーバ側の対象フォルダを確認

その他基本操作

ここまででWinSCPによるファイル共有が有効だと確認できました。が、WinSCPは多機能なクライアントソフトなので、その他基本操作についても、以下に検証を行いました。

ファイル作成

メニュー[ファイル]→[新規]→[ファイル]または、ファイルを作成したい側のディレクトリ表示画面(ここではサーバ側)で、右クリックメニュー[新規]→[ファイル]を選択します(図15赤枠)。

図15:WinSCP上でサーバ側のディレクトリ表示画面に新規ファイルを作成

編集画面が表示されるのでファイル名を入力し「OK」ボタンを押下(図16)

図16:ファイル名入力

エディタが起動するので適当に入力し、ファイル保存します(図17)。

図17:エディタが起動する

サーバ側のディレクトリ表示画面に新規ファイルが作成されることを確認します(図18)。

図18:新規ファイルが、サーバ側に作成される事を確認

ファイル削除

削除するファイルを選択します。メニュー[ファイル]→[削除]または、右クリックメニュー[削除]を選択します(図19)

図19:WinSCP上のファイル削除

確認ダイアログが表示されたら、削除ファイル名を確認して「OK」を押下します(図20)。

図20:削除確認ダイアログ

対象ファイルが削除された事を確認します(図21)

図21:WinSCP上のファイル削除を確認

ディレクトリ作成

メニュー[ファイル]→[新規]→[ディレクトリ]または、フォルダを作成したい側のディレクトリ表示画面(ここではサーバ側)で、右クリックメニュー[新規]→[ディレクトリ]を選択します(図22赤枠)。

図22:WinSCP上でサーバ側のディレクトリ表示画面に新規ディレクトリを作成

フォルダの作成画面が表示されるのでフォルダ名を入力し「OK」ボタンを押下(図23)※属性設定については、特に設定せずデフォルトのままとしました。

図23:フォルダ名の入力

サーバ側のディレクトリ表示画面に新規フォルダが作成されることを確認します(図24)。

図24:新規フォルダが、サーバ側に作成される事を確認

ディレクトリ削除

削除するフォルダを選択します。メニュー[ファイル]→[削除]または、右クリックメニュー[削除]を選択します(図25)

図25:WinSCP上のフォルダ削除

確認ダイアログが表示されたら、削除フォルダ名を確認して「OK」を押下します(図26)。

図26:削除確認ダイアログ

対象フォルダが削除された事を確認します(図27)

図27:WinSCP上のフォルダ削除を確認

操作エラー時の挙動

ルートディレクトリ(「 / 」)に移動して「root」(rootユーザー専用のディレクトリ)フォルダをダブルクリックします(図28赤枠)。

図28:「root」(rootユーザー専用のディレクトリ)フォルダをダブルクリック

エラーダイアログが表示され、権限が無いため「/root」下のリスト取得できない旨、文言が表示されるので「OK」を押下します(図29)。

図29:エラーダイアログが表示される

作業画面上、サーバ側のディレクトリ表示が切替わり「/root」下に移動したように表示されますが、権限が無く「/root」下のリストを取得できないため、何も表示されません(図30)。

図30:サーバ側のディレクトリ表示が切替わるが何も表示されない。

セッションの切断、終了

メニュー[セッション]→[セッションを閉じる]を選択します(図31赤枠)。

図31:WinSCPのセッションを閉じる

セッションが切断され、ログインダイアログが表示されるので「閉じる」を押下します(図32青枠)。

図32:セッションが切断され、ログインダイアログが表示

メニュー[コマンド]→[終了]を選択、または「×」アイコンをクリックします(図33赤枠)

図33:WinSCPの終了

「SFTP(WunSCP)」と「RDP(リモートデスクトップ接続)」の併用

以上より、WinSCPを介したファイル共有は問題ないく「リモートデスクトップ接続」の不便を補完してくれそうなので、併用して使える事を確認します。

そもそも「SFTP(WunSCP)」と「RDP(リモートデスクトップ接続)」は、ポート番号が違う(デフォルト設定で使う場合SFTP:22番、RDP:3389番)ので使えそうです。また「SFTP」はポートが同じ「SSH」配下のサブシステムなので、親サービスの「SSH」の同時使用も試します。「SFTP」「RDP」「SSH」で同時にRHEL8へ接続し、同じホームディレクトリを表示しました(図34赤枠)。

図34:

図34の通り「SFTP(WunSCP)」と「RDP(リモートデスクトップ接続)」の併用は可能で、更に「SSH」も問題なく同時使用可能なことを確認できました。

参考資料

コメント

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