WindowsからMacにリモートログイン(SSH) 鍵認証

前回の設定でローカル内のWindowsからMacにリモートログインできるようになりました。
今度は公開鍵と秘密鍵を作って鍵認証のみでログインできるようにします。

下記サイトを参考にしました。
http://d.hatena.ne.jp/cantucci/20100724/1279932989

というかほぼそのままだけど。ちょいと長くなりそうなので追記で。


1.Windows側で鍵を作成
鍵を作成するために下記ツールをダウンロード。
http://yebisuya.dip.jp/Software/PuTTY/
「puttygen.exe」を開いてウィンドウ下の生成する鍵のビット数を2048にする。生成する鍵の種類がSSH-2 RSAになっていることを確認して生成ボタンをクリック。

鍵を作り出すのでマウスをグリグリする。
鍵のパスフレーズにパスワードを入力。
公開鍵の保存、秘密鍵の保存をする。上部メニューの変換からOpenSSH形式へエクスポートをする。
これで3つの鍵が作られる。
id_rsa.pub(公開鍵)
id_rsa.ppk(秘密鍵:WinSCPとか用 イマイチ違いを理解してないorz)
id_rsa(秘密鍵:今回使う)


2.Mac側に公開鍵を移す
せっかくWindows側で操作できるようになってるので、TeraTeamでやります。
TeraTeamでMac側にログイン。

.sshディレクトリを作成
mkdir .ssh

公開鍵を作成
vi .ssh/authorized_keys

Puttyの画面の上部に表示されている「ssh-rsa ******」というながーい文字列を全てコピペ

パーミッションを変更
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

3.SSHの設定を変更
一応バックアップをとる
sudo cp -p /etc/sshd_config /etc/sshd_config.bk

設定の変更
sudo vi /etc/sshd_config

下記を変更
PermitRootLogin no ←ルートでログインできないように
PermitEmptyPasswords no ←パスワード空の認証をできないように
ChallengeResponseAuthentication no ←チャレンジ応答認証を禁止。
PasswordAuthentication no ←パスワード認証を禁止
RSAAuthentication yes ←RSA鍵認証を許可
PubkyAuthentication yes ←公開鍵認証を許可
AuthorizedKeyFiles .ssh/authorized_keys ←公開鍵がおいてある場所

SSHを再起動
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load /System/Library/LaunchDaemons/ssh.plist

これでSSHでログインするには鍵(とパスフレーズ)が必要になりました。

次はドメインをとって外部からSSH接続できるようにしてみたい。