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というエントリーを削除する。
参考
Cygwin, cygwin (2011.5.24)
SSHWindows.SourceForge.Net, http://sshwindows.sourceforge.net/ (2011.5.5)
OpenSSHのセットアップ手順, http://micro-vnc.jp/documents/archieve/sshwindows/ (2011.5.5)
OpenSSH for WindowsとRDP, http://www.playing-engineer.com/?p=191 (2011.5.5)
CygwinのOpenSSHを使って安全に自宅のWindowsにアクセス, http://sites.google.com/site/himazu/ssh-on-cygwin (2011.8.25)