OpenSSH for Cygwin on Windows

(2012.2.24-2013.8.27, 2016.7.25)

sshサーバをWindowsにインストールする。SSHターミナルでコマンドプロンプトが使え,scp, sftpやrsyncでファイル転送ができるようになる。

(環境)Windows 7 pro (32,64), Windows10 pro (64), CentOS 5.6-7, TeraTerm4.67, WinSCP 4.29, (WindowsXP版はこちら)

インストール

cygwinから最新のインストールファイルsetup.exe(64ビットWindowsを使っている場合はsetup-x86_64.exe)をダウンロード,実行してインストールをおこなう。 オプションなどは,以下を除いて標準のままでよい.[管理ユーザとして実行]すること。

  • [Cygwin Setup - Choose Download Site]ダイアログボックスでは,日本の(.jp)サイトを選ぶ.

  • [Cygwin Setup - Select Packages]ダイアログボックスでは,次のパッケージを選ぶ.

Category Package 説明

Admin cygrunsrv 必須

Editors vim エディタ

Net openssh 必須

openssl 必須

rsync 入れておくと便利。例えばLinuxサーバーにファイルのバックアップができる。

プログラムはc:\cygwin(またはc:\cygwin64)にインストールされる。

ホストキーの作成

Cygwin(64) Terminalを[管理ユーザとして実行]して,次のコマンドを入力

$ ssh-host-config -y

(Windows7の場合は,cyg_server, Windows10の場合はPrivileged serverというWindowsのユーザが作られる。そのパスワードを決めて,入力する)

設定ファイルの編集

パスワードログインを禁じ,クライアントの公開鍵を使ってログインできるように(SSH参照),viで /etc にある

sshd_config

ファイルを次のように編集する。

$ cd /etc

$ vi sshd_config

#StrictModes yes


#RSAAuthentication no

RSAAuthentication yes

PubkeyAuthentication yes

#AuthorizedKeysFile .ssh/authorized_keys

AuthorizedKeysFile /etc/authorized_keys

#PasswordAuthentication yes

PasswordAuthentication no

そして,クライアントの公開鍵(テキスト)を /etc に

authorized_keys

というファイルをつくってその中に貼り付ける. viを使えばよい.パーミッションはgo-rwxとする。

サービスの開始

[スタート]を右クリックして[コンピュータの管理](Windows7ではコントロールパネルの[管理ツール])をクリックして, [サービス]のCYGWIN cygsshdの項目をクリックして,サービスを開始する.opensshが,コンピュータの起動時に自動起動するように設定されていることがわかる.自動起動を止めたり,サービスを停止することも,ここでできる.

ファイアウォールTCP 22番ポートを空ける

[コントロールパネル]の[Windowsファイアウォール]を開き,[詳細設定]の[受信の規則], [新しい規則]をクリックし,[ポート], [TCP], を選び,[特定のローカルポート]に22,[接続を許可する],そして[ドメイン],[プライベート],[パブリック]すべてに適用して,[名前]をSSHにする。

ログイン

以上で,TeraTermからも,WinSCPからも,Linuxからも,ログインできる.RSA鍵を使ってログイン参照

なお,WinSCPでは,ディレクトリのルート / が C:\cygwin になる.WinSCPでこの外のディレクトリに移動したい場合は,ログイン時のディレクトリを

/cygdrive/

としておけばよい./cygdrive/ の下に,各ドライブのルートがドライブ文字のディレクトリとしてマウントされているので,PCの全フォルダにアクセスする事ができる.また,文字コードはUTF-8.

(注意)より簡便な OpenSSH for Windowsでは,全角文字がファイル名に入ったファイルはダウンロード/アップロードできない.

メンテナンス

アップデートやモジュールの追加

インストールファイルsetup.exe(またはsetup-x86_64.exe)を[管理ユーザとして実行]する。

アンインストール

アンインストーラはついていないので,cygwinのFAQ, How do I uninstall all of Cygwinを読んでアンインストールする。アンインストールの流れ:cygrunsrvコマンドで全てのサービスをリストアップして,停止して,削除してから,インストールフォルダ(c:\cygwinあるいはc:\cygwin64)を削除する。そしてレジストリのHKEY_CURRENT_USER\SoftwareとHKEY_LOCAL_MACHINE\SOFTWAREからCygwinというエントリーを削除する。

参考

  1. Cygwin, cygwin (2011.5.24)

  2. SSHWindows.SourceForge.Net, http://sshwindows.sourceforge.net/ (2011.5.5)

  3. OpenSSHのセットアップ手順, http://micro-vnc.jp/documents/archieve/sshwindows/ (2011.5.5)

  4. OpenSSH for WindowsとRDP, http://www.playing-engineer.com/?p=191 (2011.5.5)

  5. CygwinのOpenSSHを使って安全に自宅のWindowsにアクセス, http://sites.google.com/site/himazu/ssh-on-cygwin (2011.8.25)