Windows8 ProfessionalにCygwinを使ってSSHサーバーを設定する
VPNに続いて、SSHサーバーを設定します。
※ある程度知識のある方向けのエントリです。
使うのはCygwin。
sshd_configはRSA 鍵認証 Protocol2のみが通るように設定します。
これでセキュリティレベルもぐっと上がります。
SSHで接続できれば外部から通すポートも22番だけですみますし。
1.ダウンロード
Cygwin
上記リンクからSetup.exeをダウンロードします
2.インストール
今回必要なものだけをインストールします。
以下のものを選んでください
Adminの中の「cygrunsrv」
Docの中の「cygwindoc」
Editorsの中の「vim」
Netの中の「openssh」
すると、他に必要なものは自動的に選択されます。
※ちなみに、Windowsでユーザーを追加したら、
mkpasswd -l > /etc/passwdでcygwinにも追加できます。
mkgroup -l > /etc/group
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となっていればOKです。
644 ~/.ssh/authorized_keys
600 /etc/ssh_host*_key
644 /etc/sshd_config
以上でSSHの設定は終了です。
■クライアントの設定
クライアントであるiOSデバイスでは、iSSH - SSH / VNC Console というアプリを使えば簡単にSSH経由でVNC接続できますが、今回は備忘録も兼ねて、OS Xでの接続方法を記載します。
秘密鍵と公開鍵をつくります。
OS XのTerminalから実行します
鍵の作成
% ssh-keygen -t rsa少しチカチカした後で、パスフレーズを聞かれます。
2回正しく打ち込めば、ホームディレクトリの下に.sshという
サブディレクトリが作られ、その中にid_rsaとid_rsa.pubという
2つのファイルが出来ます。
一応、パーミッションを確認すると、
600 ~/.ssh/id_rsaとなっていればOKです。
600 ~/.ssh/id_rsa.pub
600 ~/.ssh/known_hosts
■WindowsのCygwinにiPhoneの公開鍵を追加
先ほど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':
秘密鍵を持っていることと、鍵作成時に入力したパスフレーズと秘密鍵の組み合わせが正しいときのみ接続できますので、安全性は高いと思います。
で、目的のVNCやTVersityのSSHトンネル経由の接続方法ですが、コマンド例は以下の通りです。
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の設定も必要ですので、忘れずに。