Windows for OPENSSHをインストールする手順です
Windows環境でsshサーバをたてるにはフリーソフトをインストールする必要があります。今回はその一つでもあるOPENSSHの説明をします。リモートでsshでWindowsにログインできるようになります。
OPENSSHとは
オープンソースのリモートツールになります
SSHはLinux系では有名なツールで、最初から標準でインストールされていることが多いですが
Windowsの場合は追加でインストールすることができます
昔はフリーソフトで代用していましたが
最近(Windows 10以降)はPowerShellからインストールを実行できるようです
※Windowsアップデートにより既にインストールされているようです
スタートメニューから「Windows の設定」>「アプリ」>「オプション機能の管理」
SSHはアクセスされる側:sshサーバとアクセスする側:sshクライアントがあります
OpenSSHインストール
1.Windows版OpenSSHをダウンロードする。
「OpenSSH-Win32.zip」を以下からダウンロードし、”C:\Program Files”に展開
2.環境変数Pathに “C:\Program Files\OpenSSH-Win32” を追加
コマンドプロンプトから以下のコマンドを実施
> SETX /M PATH “%PATH%;c:\Program Files\OpenSSH-Win32”※setxコマンドがWindows Vista以降では使える
3.SSH の host key をセットアップする。
ssh-keygenコマンドを実行して、host keyを生成します。
> ssh-keygen -A
C:\tools\OpenSSH-Win32\ssh-keygen.exe: generating new host keys: RSA DSA ECDSA ED25519↑パスを指定しないとアカウントフォルダに展開される
※鍵はサーバ側でもクライアント側(teraterm)どちらでも作成できます。
最終的にはサーバに公開鍵、クライアントに秘密鍵を配置します
4.WindowsサービスとしてSSHサーバを起動する
> sshd install
Service installed successfully
> net start sshd
SSHD サービスを開始します.
SSHD サービスは正常に開始されました。「システム エラー 1067 が発生しました。」とのメッセージが出るときは
host keyをすべて、sshd.exeがあるフォルダに移動する
アカウントはwindows側でつくる
(Cygwinなどが入っていれば、そこからLinuxベースでも作れるが)
鍵認証設定(ssh.configの設定)
ssh を使ってリモートホストに接続する場合、パスワードを使うよりも鍵交換方式の認証の方が安全です
ここでは sshサーバー のパスワード認証を禁止し、鍵交換方式を採用します
設定ファイル「sshd_config」を以下のように変更します
・無効にしておく
PasswordAuthentication no パスワードログイン禁止
PermitRootLogin no root ログインを禁止
PermitEmptyPassword no パスワード無しのログインを禁止
・有効にしておく
RSAAuthentication yes RSA認証を許可(ssh1のみ)
PubkeyAuthentication yes 公開鍵認証を許可(ssh2のみ)
AuthorizedKeysFile .ssh/authorized_keys 公開鍵のハッシュ値をまとめたファイル名
細かい項目は以下を参照してください
設定が完了したら、コマンドプロンプトより、以下のコマンドで再起動します
>net stop sshd
>net start sshd
うまくできない場合はこちらの記事が参考になるかもしれません