Windows端末から公開鍵認証方式でSSH接続したリモートホスト内のファイルをメモ帳などで編集する方法


概要

タイトルにある「メモ帳」というのは象徴であって、要は、

  • 要は手元の使い慣れたエディタ(GUIのやつ)でファイルを編集したい。(= vim とか emacs とかの CUI のエディタで編集するのがウザい)
  • ファイルやフォルダはドラッグ&ドロップによって端末・ホスト間で転送したい。(= コマンドラインからの scp コマンドとか使いたくない。特に複数ファイルを転送する場合。ホストに samba が用意されてればいいけど、インターネット経由だと何となく認証方式が不安だったり。)

というようなニーズがあるので、その実現方法のひとつを書いてみる。

前提

  • Windows端末からリモートホストに公開鍵認証方式でSSH接続ができるように設定が済んでいること。(ググれば参考サイト多数あり)
  • すなわち、コマンドプロンプトから、
 ssh [ユーザー名]@[ホスト名またはIPアドレス] 云々

などでリモートホストにログインできる状態に設定されていること。

  • C:\Users\ [ユーザー名]\ .ssh\id_rsa  などに生成した秘密鍵を置いていること。

WinSCP のインストール

https://winscp.net/eng/download.php
https://forest.watch.impress.co.jp/library/software/winscp/

などからダウンロードしてインストールする。
んで、
C:\Program Files (x86)\WinSCP\
にインストールしたという仮定で進める。

秘密鍵のファイル変換

なぜか鍵の形式を変換しないと使えないので。

  • C:\Program Files (x86)\WinSCP\PuTTY\puttygen.exe をダブルクリックとかで実行する。 (一説によるとスタートメニューから実行できるとか言われているが、ワシにはできなかった。)
  • Conversions メニュー → Import key で、秘密鍵ファイル= C:\Users\ [ユーザー名]\ .ssh\id_rsa を探して開く。
  • [ Save private key ] で、id_rsa.ppk というファイル名で保存する。(”public key” と間違わないこと。)
  • [×] で終了。

WinSCP を実行

  • スタートメニューから WinSCP を探して実行する。
  • ホスト名とユーザー名とパスワード(必要な場合)を入れて、[設定] ボタンを押す。
  • 「高度なサイトの設定」ダイアログで、SSH の下の 「認証」 をクリック。
  • 「秘密鍵」の[...] から、上記 id_rsa.ppk を探して入れて [OK] ボタン。
  • [保存] ボタン。
  • [ログイン] ボタン。

以上の操作で、リモートホストのディレクトリやファイルが見れたらラッキー。

  • ドラッグ&ドロップで、端末・ホスト間のファイルのコピーが可能。(上書きは警告がでないことがあるので注意)
  • ファイルを編集するなら、ファイル名を右クリック→「編集」からお好みのエディタを選んで編集可能。
  • ファイル名を右クリック→「編集」「設定」「追加」「外部エディタ」「参照」からお好みのエディタを選んで追加可能。
  • たとえばメモ帳を追加したいなら C:\Windows\notedad.exe を追加する。
  • たとえば TeraPad をインストール済なら C:\Program Files (x86)\TeraPad\TeraPad.exe を追加するとか。。
  • リモートホストが Linux 系などの場合は、文字コード/改行コードに注意。  たとえば、Tera Pad で日本語を扱う場合なら、一度、ファイルメニュー→「文字/改行コード指定保存」で文字コード=UTF-8N、改行コード=LF などとして保存する。一度保存すると次回開くときに覚えていてくれる。

その他の方法

ホスト側にGUIエディタがあってそれを使いたいなら、WinSCP を使わずに Xming とかでターミナルソフトから起動できるかも。