この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
コンニチハ、千葉です。
Microsoft公式からWin32-OpenSSHがプレリリースされております。
弊社のブログでも紹介があり、windows > linuxへの接続してみたというエントリーがあります。
今回は、windowsにsshdをインストールし接続し、linux > windowsのssh接続を行ってみます。
OpenSSHのインストール
まずは、OpenSSHをインストールします。こちらよりOpenSSHをダウンロードします。
※上記リンクは2015/11/9版なので最新版はこちらよりご確認ください
ダウンロードしたzipファイルを展開します。今回は、Cドライブ直下にフォルダを配置することにします。
作業は、powershellから実施するのでpowershellを起動します。想定した場所にファイルあることを確認しましょう。
PS C:\Users\Administrator> dir C:\OpenSSH-Win32
環境変数Pathに、「C:\OpenSSH-Win32」を追加してpowershellを起動しなおします。
パスが通っていることを確認します。
PS C:\Users\Administrator> ssh --help
unknown option -- -
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port]
[-Q cipher | cipher-auth | mac | kex | key]
[-R address] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] [user@]hostname [command]
SSHキーを設定します
sshdで利用するキーファイルを作成します。
PS C:\Users\Administrator> cd C:\OpenSSH-Win32
PS C:\OpenSSH-Win32>
PS C:\OpenSSH-Win32> ssh-keygen.exe -A
C:\OpenSSH-Win32\ssh-keygen.exe: generating new host keys: RSA DSA ECDSA ED25519
ファイアウォールの設定
22番ポートを開放してあげます。
PS C:\OpenSSH-Win32> New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
Name : {c0fa26f8-00ef-4fa5-a262-28c1a25760d0}
DisplayName : SSH
Description :
DisplayGroup :
Group :
Enabled : True
Profile : Any
Platform : {}
Direction : Inbound
Action : Allow
EdgeTraversalPolicy : Block
LooseSourceMapping : False
LocalOnlyMapping : False
Owner :
PrimaryStatus : OK
Status : 規則は、ストアから正常に解析されました。 (65536)
EnforcementStatus : NotApplicable
PolicyStoreSource : PersistentStore
PolicyStoreSourceType : Local
sshdのセットアップ
sshdセットアップ用のcmdを実行します。
PS C:\OpenSSH-Win32> setup-ssh-lsa.cmd
リブート
OSの再起動を行います。
sshdサービスへの登録
サービスで起動するようにsshdをサービスに登録します。
PS C:\Users\Administrator> sshd install
Service installed successfully
sshdサービスを起動
sshdをサービスから起動してみましょう。
PS C:\Users\Administrator> net start sshd
SSHD サービスを開始します.
SSHD サービスは正常に開始されました。
windows起動時に自動でsshdを起動させたい場合は、こちらを実行
PS C:\Users\Administrator> Set-Service sshd -StartupType Automatic
linuxからwindowsにsshで接続してみる
いざ!sshでwindowsに接続してみます。
local$ ssh Administrator@xxx.xxx.xxx
The authenticity of host 'XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX)' can't be established.
ECDSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXX
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'XXX.XXX.XXX.XXX' (ECDSA) to the list of known hosts.
Administrator@XXX.XXX.XXX.XXX's password:
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
Administrator@WIN-UAIF2EQBHK8 C:\Users\Administrator>
パスワードにはAdministratorのパスワードを入力。
接続できました!
おそらくコマンドプロンプトでの接続のようです。(コマンドを打つと文字コードが違うので文字化けします)
sshdのアンイストール
やっぱりやめよう。というときのアンインストール。
PS cd C:\> net stop sshd
PS cd C:\> sshd.exe uninstall
さいごに
これで、windowsにもsshでログインできることが確認できました! コマンドラインで作業できるようになると、とっても便利ですね。