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