前回の記事で Mac の設定について書きましたが、外部から Mac に接続する設定について少し補足をしておきます。
SSH のポート番号変更
OSX El Capitan 以降は SIP によって /System 以下のディレクトリが保護されています。そこで /Library 以下に ssh.plist をコピーして port 番号をカスタマイズすることになります。
sudo cp /System/Library/LaunchDaemons/ssh.plist /Library/LaunchDaemons/ssh2.plist
sudo vim /Library/LaunchDaemons/ssh2.plist
以下、ポート番号を 9999 に変更する前提で記述します。
ポイントとなる場所だけを記述すると
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<string>com.openssh.sshd2</string>
<dict>
<dict>
<key>SockServiceName</key>
<string>9999</string>
</dict>
</dict>
</dict>
</plist>
という感じです。
次に新しい ssh2.plist を load し、また忘れずに既定の ssh.plist を unload します。
sudo launchctl load -w /Library/LaunchDaemons/ssh2.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
SSH のパスワード認証無効化
また、同様に忘れてならないのが sshd のパスワード認証を無効にする設定です。
これは /etc/ssh/sshd_config を編集すれば OK です。
PasswordAuthentication no
ChallengeResponseAuthentication no
接続試験
最後に接続確認をします。
# 22 番ポートで接続できないことを確認
$ ssh -p 22 myname@mymacbook
ssh: connect to host zodiac port 22: Connection refused
# 9999 番ポートでパスワード認証が無効であることを確認
$ ssh -p 9999 test@mymacbook
Permission denied (publickey).
# 9999 番ポートで公開鍵認証で外部から接続できることを確認
$ ssh -p 9999 myname@mymacbook
Last login: Thu Nov 3 09:46:30 2016 from xxx
以上です。