
Mac OS Xでリモートログインを有効にしてSSHサーバーを起動する
リモートログインは、Mac OS Xの共有環境設定にある機能で、OpenSSHプロトコルを使用してリモートユーザーがMacに安全に接続できるようにします。基本的に、リモートログインはMac上でSSHサーバーを起動します。SSHサーバーは、着信SSH接続を受け入れる機能を備えており、Telnetの安全な代替手段です。さらに、この機能には、FTPの安全な代替手段であるSFTPサーバーが含まれており、有効化されます。さらに、ファイルの安全なリモートコピーを可能にするSCPも有効化されます。これは複雑で分かりにくいように思われるかもしれませんが、実際にはそうではありません。Mac上でSSHサーバーを素早く有効化し、 ssh、sftp、scpによる安全な着信接続を受け入れるための設定方法を詳しく説明します。
Mac OS Xでリモートログインを使用してSSHとSFTPサーバーを有効にする方法
「リモート ログイン」サービスを開始すると、Mac OS X で SSH サーバーと SFTP サーバーが有効になります。これらの手順は、MacOS Mojave 10.14、MacOS High Sierra 10.13、macOS Sierra 10.12、OS X El Capitan 10.11、Yosemite 10.10、OS X Mavericks 10.9、10.8 Mountain Lion、10.7 Lion、および 10.6 Snow Leopard でリモート ログインと付随する SSH サーバーを有効にする場合と同じです。
- Appleメニューからシステム環境設定を開き、「共有」設定パネルをクリックします。
- スクリーンショットに示すように、「リモートログイン」の横にあるチェックボックスを選択して有効にします。
チェックボックスをクリックすると、sftp や ssh などのさまざまなリモート ログイン サーバーが即座に起動します。
SSHの受信アクセスを特定のユーザーのみに制限したい場合は、同じ設定パネルで「これらのユーザーのみ」にチェックを入れ、+アイコンをクリックして手動で追加します。すると、Mac上のユーザーとグループのリストが表示され、そこから選択できます。SSHはプロトコルの性質上、デフォルトでも非常に安全ですが、これは追加のセキュリティ対策と考えてください。
SSHサーバーが有効になったので、必要に応じて有効になっているかどうかを確認できます。最も簡単な方法は、ターミナルアプリを開き、「ssh localhost」または「sftp localhost」と入力することです。すべてが正常に動作していれば、次のような結果が返されます。
$ sftp localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is b3:42:27:4a:b6:22:86:4b:c6:21:32:47:4b:8b:18:0d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
Password:
ローカルホストへの接続はあまり便利ではありませんが、これが「リモートログイン」と呼ばれるのには理由があります。SSHコマンドラインインターフェース、最新のFTP/SFTPクライアントを介したSFTP、あるいは他のMacやUnixマシンのターミナルからscpコマンドを使って直接ファイル転送することで、リモートMacへの安全な接続を可能にするからです。ここでは主にSSHとSFTPに焦点を当てます。なぜなら、これらが最も一般的に必要とされるからです。
Mac SSHサーバーにリモート接続する
SSHが起動したら、リモート接続は簡単です。素晴らしいのは、事実上すべてのOSからMacに接続できる点です。必要なのはSSHクライアントだけです。Mac OS XとLinuxにはSSHクライアントがバンドルされているため、ダウンロードは不要です。ターミナルを開いて「ssh」コマンドを使用するだけです。iOSユーザーはPrompt、WindowsユーザーはPuTTY(無料)を利用できます。
1) SSH サーバーとして機能する Mac から:
まず、サーバーを実行している Mac の IP を取得します。これにより、別のユーザー/クライアントが接続先を知ることができます。
- MacのIPアドレスを取得する – 「システム環境設定」と「ネットワーク」に移動してIPアドレスを取得します。
2) 別のコンピュータから SSH を使用して Mac に接続する:
これで、サーバーの IP アドレスがわかったので、Mac は次のものに接続できます。
- ここでは Mac OS X のターミナルを使用しているものと想定し、先ほど見つけた IP アドレスを使用して次のコマンド構文を使用します。
- ユーザー名として paul を使用し、サーバー IP として 192.168.0.25 を使用した場合、実際の表示は次のようになります。
- 既知のホストリストにRSAキーを受け入れるように求められますので、「はい」と入力すると、ユーザーのパスワードが求められます。
- これでSSH経由でMacにリモート接続されました
ssh [email protected]
ssh [email protected]
これで、SSH 経由で Mac にログインできるようになります。これはリモートまたはローカル ネットワーク経由で実行でき、マシン間のすべてのトラフィックは安全に暗号化されます。
ターミナルに精通したユーザーにとっては、ここで説明されているように、Mac のコマンド ラインから SSH サーバーを有効または無効にできることも知っておくと便利です。
SFTP経由でMacに接続する
リモートログインではSSHとSFTPの両方が有効なため、SFTPプロトコルを使ってMacに安全に接続できるようになりました。これはターミナル、CyberDuck、Transmit、Filezillaなどのサードパーティ製SFTPアプリ、あるいはMac OS X自体からでも可能で、Macと他の場所との間でファイルを転送できます。SFTPサービスへの直接接続は、sftp://192.168.0.100のようになります。
ターミナルとコマンド ラインから、次のコマンド構文を使用して SFTP サーバーに接続します。
sftp user@remote_host
代わりに SCP を使用する場合、コマンドとして代わりに「scp」を使用することを除いて手順は同じです。
ここで覚えておくべき点がいくつかあります。ローカルIPアドレス(LAN内)は、外部IPアドレス(外部の世界向け)とは異なります。マシンの外部IPアドレスを取得する最も簡単な方法は、「whatismyip.org」などのサイトを利用することです。ただし、Macがファイアウォール付きのルーターの背後にある場合は、ルーターのポートを開いてアクセスする必要があることに注意してください。この手順は使用しているルーターとファイアウォールによって異なるため、ここで詳しく説明してもあまり意味がありません。
最後に、Mac OS X から脱却して iOS のモバイルの世界に進出すると、iOS デバイス上にサーバーをセットアップすることで iPhone や iPad にも SSH で接続できるようになりますが、これは少し複雑で、サーバーを有効にして iOS のコマンド ラインにアクセスするには脱獄が必要になります。
また、リモート ログインを通じて SSH、ひいては SFTP が組み込まれたことにより、Apple が Lion 以降で FTP サーバーを廃止した理由も説明できます (これは Mojave、High Sierra、Sierra、El Capitan、Yosemite、Mavericks、Mountain Lion でも変わりませんが、どうしても必要な場合は Homebrew を使用するか自分でコンパイルして ftp をインストールすることもできます)。Apple は、はるかに安全で暗号化された SSH および SFTP オプションを選択し、それを SSH パッケージ全体の一部として共有の「リモート ログイン」オプションにバンドルしたからです。
コメントで投稿のアイデアを提供してくれたIzdexicに感謝します
Mac 上の SSH に関する役立つヒントや情報があれば、下のコメント欄で共有してください。