2010/01/24

MacOS X の sshd の待ち受けポートを変更する方法

MacOS X では、ssh がシステムへ統合されており、Remote Login の手段として簡単に利用出来ます。

手順は、System Preferences の Sharing へ入り、Remote Login のチェックボックスを有効化するだけです。これで ssd が起動さ れます。

通常 ssh は 22番ポートで待ち受けます。今回、それ以外のポートでも待ち受けるできるように設定を変更しようとしたのですが、/etc/sshd_config などを変更してもうまくいきませんでした。

検索してみたところ、Mac OS X Hintsサイトで10.4: Change the default sshd port Networkという解説記事を発見することが出来ました

コメントまで含めてまとめると、次のようになります。

  • sshd の設定は /System/Library/LaunchDaemons/ssh.plist で行う
  • 標準の待受け設定は、Listeners の SockServiceName Key で指定された string 値の ssh。ここへは、/etc/service 内の名称、ポート番号のいずれをも指定できる。
  • 待受ポート番号を追加するには、Sockets 内の Listeners Keyと並列に Alternate Listeners Key で指定する。
  • plist ファイルを変更した場合には、launchctl の load/unload で再読み込みを行う

例えば、ssh を 10000番ポート番号で追加待ち受けするように設定するには、/System/Library/LaunchDaemons/ssh.plist に対し、

        <key>Sockets</key>
        <dict>
                <key>Alternate Listeners</key>
                <dict>
                        <key>SockServiceName</key>
                        <string>10000</string>
                </dict>
                <key>Listeners</key>
                <dict>
                        <key>SockServiceName</key>
                        <string>ssh</string>
                        <key>Bonjour</key>
のような記述を行い、その後、
% sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
% sudo launchctl load /System/Library/LaunchDaemons/ssh.plist
を実行することになります。もし、System Preferences で Remote Login を有効にしていない場合には、チェックボックスを有効化するか、service コマンドで start しましょう。
% sudo service ssh start

貴重な情報を公開してくださった、Mac OS X Hintsサイトへ感謝いたします。

0 件のコメント:

コメントを投稿