ある事がしたくて、MacBookProにSSHサーバーの設定をしました。
ただ、sshdのポート番号の変更方法が特殊で苦労したので、覚え書きとして記載。
OpenSSHとは
きちんと調べたことがなかったので、調べてみました。
OpenSSH (Open Secure Shell) は、SSHプロトコルを利用するためのソフトウェアで、SSHサーバおよびSSHクライアントを含む。OpenSSH は、OpenBSDプロジェクトにより開発が行われ、BSDライセンスで公開されている。オリジナルのSSH実装であるSSH Tectia など、SSHには他にいくつかの実装があるが、2008年の時点でOpenSSHは世界で最も使用されているSSH実装である。
「OpenSSH」『フリー百科事典 ウィキペディア日本語版』。2013年3月17日 (日) 23:06 UTC、URL: http://ja.wikipedia.org
sshdポート番号の設定方法
OpenSSHの各種設定は、構成ファイルの /etc/ssh/sshd_config の内容を編集します。
構成ファイルの13行目のある「#Port 22」のコメントアウトをはずし番号を設定することで、sshdがクライアントからの接続要求を待ち受けるLISTENポートを変更する事が可能です。
ちなみに、Macでは sshd_config のパスが「/etc/ssh/sshd_config」ではなく、「/etc/sshd_config」でした。
sshd_config のポート番号を変更しsshdを起動したところ、別のPowerBookから接続しても、”ssh: connect to host MacBookPro port 12345: Connection refused” と変更後のポート番号が設定されていないと思われるエラーが。。。
Google先生に聞いてみたところ、どうやら「/System/Library/LaunchDaemons/ssh.plist」で管理をされているらしい。
XMLの21行目に記載されている、「ssh」を使用したいポート番号へ変更し、sshを再起動すれば完成です。
したのDIFF結果のハイライト部分です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
MacBookPro $ diff -c /System/Library/LaunchDaemons/ssh.plist /System/Library/LaunchDaemons/ssh.plist.20121117 *** /System/Library/LaunchDaemons/ssh.plist 2013-06-12 18:51:25.000000000 +0900 --- /System/Library/LaunchDaemons/ssh.plist.20121117 2012-11-17 01:24:13.000000000 +0900 *************** *** 18,24 **** <key>Listeners</key> <dict> <key>SockServiceName</key> ! <string>12345</string> <key>Bonjour</key> <array> <string>ssh</string> --- 18,24 ---- <key>Listeners</key> <dict> <key>SockServiceName</key> ! <string>ssh</string> <key>Bonjour</key> <array> <string>ssh</string> MacBookPro $ |
再起動は、launchctlコマンドの unload オプションと loadl オプションにて実施します。
1 2 3 |
MacBookPro $ sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist MacBookPro $ sudo launchctl load /System/Library/LaunchDaemons/ssh.plist MacBookPro $ |
ちなみに、OnDemand = false のジョブは常駐する設定になりますの、上記手順ではなく、stop オプションで停止後すぐ起動します。
stop オプションで再起動ができるようです。
ssh は OnDemand = true なので上記手順が必要になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
MacBookPro $ grep com.*ssh* /System/Library/LaunchDaemons/ssh.plist <string>com.openssh.sshd</string> MacBookPro $ sudo launchctl list com.openssh.sshd { "Label" = "com.openssh.sshd"; "LimitLoadToSessionType" = "System"; "OnDemand" = true; "LastExitStatus" = 0; "TimeOut" = 30; "Program" = "/usr/libexec/sshd-keygen-wrapper"; "StandardErrorPath" = "/dev/null"; "ProgramArguments" = ( "/usr/sbin/sshd"; "-i"; ); "inetdCompatibility" = { "Wait" = false; }; "Sockets" = { "Listeners" = ( file-descriptor-object; file-descriptor-object; ); }; }; MacBookPro $ |