windowsでSSHサーバー
windows端末へ、外部からリモートにて操作したい。
しかし、リモートデスクトップのポートを開放し直接接続するのは、セキュリティ上、気持ちが悪い。
ということで、SSHのポートフォワードを使用し、セキュアなリモート接続を試みます。
環境・使用ソフト
手順
SSHサーバーを立てる
上記のwebサイトから「freeSSHd」をインストール。
ダウンロードしたファイルを解凍し、ウィザードに従って進めてください。
SSHサーバーの設定
前準備
前準備として、freeSSHdのインストール後、一度再起動し、サービスが起動している場合は、停止してください。
以下の順にSSHの設定を行って行きます。
SSH
Listen…自IP
port…任意のポート。ルーター開放が必要。すでに開放されてあるポートと重複しないポートを指定
RSAkey…後で再作成するが、わかりやすくするため、SSHログインユーザー名で、freeSSHdインストールフォルダへ作成
Authentication(認証設定)
パスワードのみの認証を拒否するため、Password authenticationをDisabledへ変更
Tunneling(トンネルの許可)
ポートフォワードを許可するため、下記のように設定を変更
Allow local port forwardingのチェックをオン
Allow remote port forwardingのチェックをオン
Users(ユーザー設定)
SSHにてログインするユーザーを追加する。
今回は、SSHの鍵認証で行うため、windowsに存在しないユーザー名でも可。もちろん、windowsに存在するユーザー名でも可。
addボタンを押下し、追加ウィザードを開く。
Login…SSHにてログインするユーザー名
Authoritarian…Public key(SSH only)
shell…シェルにログイン
SFTP…SSH FTPにログイン
Tunneling…トンネル許可
鍵ペアの作成
puttykegenを使用し、公開鍵・秘密鍵を作成。
マウスをぐりぐり動かしてください。
パスフレーズを指定すると、より強固なセキュリティーになります。
OpenSSHのauthorizedkeyファイルにペーストするための公開鍵
の文字列全体をコピーし、先ほど「SSH設定(ListenIP、ポート、公開鍵指定)」の項で作成した公開鍵ファイルへ上書き保存する。
秘密鍵はクライアントからSSHサーバーへログインする際に使用します。わかりやすいように「SSHへログインするユーザー名.ppk」とします。
ポート開放
ルーターの設定から、SSHサーバー用に指定したポート番号を開放し、該当ポートへのアクセスはSSHサーバーへ転送するよう、設定する。
あわせて、SSHサーバー上でファイアウォールが存在している場合は開放する。
リモート接続
クライアント端末から、SSHサーバーへ接続テストを行う。
plink -P {ポート番号} -i {秘密鍵フルパス} {ユーザー名}@{ホストIP} ls
上記で、ホームディレクトリのファイル一覧が表示されれば成功。
クライアントのポートフォワード設定
「pfwd_sample.ini」を編集し、ポートフォワードの設定を行う。
コメント