Cotton Paper web.

campやmac、iPhone、iPadと家電

Windows8 ProfessionalにCygwinを使ってSSHサーバーを設定する

new_windowVPNに続いて、SSHサーバーを設定します。
※ある程度知識のある方向けのエントリです。


使うのはnew_windowCygwin

sshd_configはRSA 鍵認証 Protocol2のみが通るように設定します。
これでセキュリティレベルもぐっと上がります。
SSHで接続できれば外部から通すポートも22番だけですみますし。



Windows 8 Pro へのCygwinインストール

1.ダウンロード
 new_windowCygwin
 上記リンクからSetup.exeをダウンロードします


2.インストール
 今回必要なものだけをインストールします。
 以下のものを選んでください
   Adminの中の「cygrunsrv」
   Docの中の「cygwindoc」
   Editorsの中の「vim
   Netの中の「openssh」
 すると、他に必要なものは自動的に選択されます。

※ちなみに、Windowsでユーザーを追加したら、

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group
cygwinにも追加できます。


3.SSHのセットアップ

CygwinのShellから、ssh-host-configを実行。質問には、yesで良い。
CygwinのShellから、ssh-user-configを実行。質問には、yesで良い。


4.sshd_configの設定
※環境によって変わる場所があると思います。

Port 22
Protocol 2
HostKey /etc/ssh_host_rsa_key
#SyslogFacility AUTH
#LogLevel INFO
#LoginGraceTime 2m
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
RhostsRSAAuthentication no
HostbasedAuthentication no
IgnoreUserKnownHosts no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePrivilegeSeparation sandbox # Default for new installations.
#Subsystem sftp /usr/sbin/sftp-server
ここまで来たら、一応パーミッションの確認をします。

700 ~/.ssh
644 ~/.ssh/authorized_keys
600 /etc/ssh_host*_key
644 /etc/sshd_config
となっていればOKです。


以上でSSHの設定は終了です。



■クライアントの設定
クライアントであるiOSデバイスでは、iSSH - SSH / VNC Console Appというアプリを使えば簡単にSSH経由でVNC接続できますが、今回は備忘録も兼ねて、OS Xでの接続方法を記載します。

秘密鍵と公開鍵をつくります。

OS XのTerminalから実行します

鍵の作成

% ssh-keygen -t rsa
少しチカチカした後で、パスフレーズを聞かれます。
2回正しく打ち込めば、ホームディレクトリの下に.sshという
サブディレクトリが作られ、その中にid_rsaとid_rsa.pubという
2つのファイルが出来ます。

一応、パーミッションを確認すると、

600 ~/.ssh/id_rsa
600 ~/.ssh/id_rsa.pub
600 ~/.ssh/known_hosts
となっていればOKです。


WindowsCygwiniPhoneの公開鍵を追加
先ほどOS Xで作成した公開鍵id_rsa.pubを
Cygwinのホームディレクトリの下の.ssh/authorized_keysに追加します。

以下は、CygwinのShellから実行します。

% cat id_rsa.pub >> ~/.ssh/authorized_keys
以上で設定はすべて終了です。




SSHの接続確認をしてみましょう。

単にSSHで接続する場合のコマンドは、

ssh -l user名 IP(domain)
です。

接続して、

local:~% ssh remote
The authenticity of host 'remote (192.168.*.*)' can't be established.
DSA key fingerprint is 2e:f1:**:ff:**:**:c0:**:**:33:**:55:**:**:e4:**.
Are you sure you want to continue connecting (yes/no)? yes
Enter passphrase for key '/home/hoge/.ssh/id_rsa':
みたいな画面が出れば成功です。
秘密鍵を持っていることと、鍵作成時に入力したパスフレーズ秘密鍵の組み合わせが正しいときのみ接続できますので、安全性は高いと思います。



で、目的のVNCTVersitySSHトンネル経由の接続方法ですが、コマンド例は以下の通りです。

SSH -L 5900:127.0.0.1:5900 -l username IP(domain)
これはつまり、ローカルの5900番ポートがSSH先のIPの5900番ポートになりますよという事です。

この場合、VNCの接続設定は、127.0.0.1の5900番になります。

通信内容は、もちろんSSHで暗号化された状態になりますので、VNCのID、PWが漏れる心配もぐっと減ります。



ということで、一通りの設定は終了です。


結構はしょったので、ある程度知識のある人しか分からないと思いますが…。


実際の運用には、ルータの設定やFWの設定も必要ですので、忘れずに。