
コマンドラインからMacでSSHを有効にする方法
macOSまたはMac OS Xを搭載したすべての最新Macには、デフォルトでSSHがプリインストールされていますが、SSH(Secure Shell)デーモンもデフォルトで無効になっています。Macの上級ユーザーにとって、SSHの有効化と無効化はどちらもMac OSのコマンドラインから完全に実行できることは大きなメリットです。これにより、コンピュータへのリモート接続の許可または拒否を簡単に行うことができます。kextの読み込み、ダウンロード、コンパイルは必要ありません。このチュートリアルで説明するように、MacのターミナルからSSHを有効にするには、システムセットアップコマンドを実行するだけです。
補足ですが、このガイドはmacOSとMac OS Xのすべてのバージョンに適用されますが、実際にはターミナルを頻繁に使用する上級ユーザーを対象としています。SSHのオン/オフを切り替えてコマンドラインを回避したい場合は、Macの「共有」環境設定パネルで「リモートログイン」を有効にするか、チェックを外してサーバーを停止してください。SSHを頻繁に使用しない場合は、MacでSSHサーバーを有効にする必要はありません。
Mac OSでターミナル経由でSSHリモートログインが有効になっているかどうかを確認する方法
Mac で SSH の現在のステータスを確認したいですか? systemsetup コマンド文字列を使用すると、Mac で SSH とリモートログインが現在有効になっているかどうかをすぐに確認できます。
sudo systemsetup -getremotelogin
リモート ログインと SSH が現在有効になっている場合、コマンドとレポートには「リモート ログイン: オン」と表示されますが、SSH が無効になっていて macOS のデフォルト状態になっている場合は、「リモート ログイン: オフ」と表示されます。
systemsetup を使ってコマンドラインから Mac で SSH を有効にする
SSH サーバーをすぐにオンにして、現在の Mac への着信 ssh 接続を許可するには、次のように systemsetup で -setremotelogin フラグを使用します。
sudo systemsetup -setremotelogin on
sudo が必要なのは、Mac の共有環境設定からリモート ログインを有効にしてセキュア シェル サーバーを有効にする場合と同様に、systemsetup コマンドには管理者権限が必要なためです。
リモートログインとSSHが有効になったことを示す確認メッセージやメッセージは表示されませんが、前述の -getmorelogin フラグを使用することで、SSHサーバーが実際に実行されているかどうかを確認できます。また、-setremotelogin を使用すると、MacでSSHサーバーとSFTPサーバーの両方が有効になります。
ssh が有効になると、現在の Mac にログインしているすべてのユーザー アカウントまたはユーザーは、次のように Mac の IP アドレスを対象とする ssh コマンドを使用してリモートからアクセスできるようになります。
ssh [email protected]
接続すると、ユーザーはコマンド ライン経由でコンピューターにリモート アクセスできるようになり、管理者アカウントまたは管理者パスワードを持っている場合は、完全なリモート管理アクセスも可能になります。
systemsetupを使用してMac OSでSSHをオフにする
コマンドラインから SSH サーバーを無効にしてリモート接続を防止したい場合は、次のように systemsetup の -setremotelogin フラグを使用して「オン」を「オフ」に切り替えるだけです。
sudo systemsetup -setremotelogin off
繰り返しになりますが、SSH をオフにして ssh および sftp サーバーを無効にするには、sudo が必要です。
コマンドの実行に成功すると、「リモートログインを本当にオフにしますか?オフにすると、この接続は失われ、サーバー側でローカルにオンにすることしかできなくなります(はい/いいえ)」と尋ねられます。「はい」と入力して確認すると、SSHが無効になり、対象のMacへのアクティブなSSH接続もすべて切断されます。セットアップスクリプトなどに組み込むなど、yes/noの入力を避けたい場合は、次のように -f フラグを使用してこの質問を回避できます。
sudo systemsetup -f -setremotelogin off
同様に、-f を使用して、SSH の有効化に関するプロンプトをスキップすることもできます。
systemsetup -f -setremotelogin on
コマンドラインから SSH をオフにするか、SSH を有効にするかに関係なく、Mac OS X GUI のリモート ログイン システム環境設定パネルの設定もそれに応じて調整され、変更が反映されることに注意してください。