2022年4月29日金曜日

macOS Monterey(Version 12.21.)にopensshをインストールし22番ポート以外で実行する

macOSではデフォルトでsshdが22番ポートで起動されています。これとは別に、公開鍵認証でのみアクセスできるsshdを10022番ポートで起動するようにしてみました。参考にしたのは、まずは以下の投稿です。

MacOSXで、Homebrewから入れたopensshを使う
https://kkotaro0111.hatenadiary.org/entry/20130905/1378403036

 これにならってhomebrewでopensshをインストールします。

$ brew install openssh
...
$ /usr/bin/ssh -v
...
$ /usr/local/bin/ssh -v
...
$

次にopensshのsshdを10022番で起動するようにします。

$ vi /usr/local/etc/ssh/sshd_conf
...
# ForceCommand cvs server
Port 10022
このように「Port 10022」の記述を最後の行に足します。またインストールしたOpenSSH_9.0p1/OpenSSL 1.1.1n/15 Mar 2022というバージョンでは、デフォルトでパスワード認証が無効になっていたので、これについての設定は不要でした。

つぎに/usr/local/sbin/sshdを起動時に起動するようにします。これは以下の投稿を参考にしました。
[Mac]OS起動時に、スクリプトを実行する
https://qiita.com/hikouki/items/473d8ce0b1f562a94de6
$ sudo touch /Library/LaunchDaemons/ssh10022.plist
$ sudo vi /Library/LaunchDaemons/ssh10022.plist
...

<?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>

<key>Label</key>

<string>com.openssh.sshd10022</string>

<key>Program</key>

<string>/usr/local/sbin/sshd</string>

<key>RunAtLoad</key>

    <true/>

</dict>

</plist>

sudo launchctl load -w /Library/LaunchDaemons/ssh10022.plist

p.s あわせてmoshから利用しようとしたら"mosh-server not  found"となってしまうので、「$ mosh --server "/usr/local/bin/mosh" --ssh="ssh -p 10022" ....」とする必要がありました。