Mac Mini M4を買ったので、ssh接続したくなって設定しました。そのメモです。
実行環境
サーバー側 Mac Mini
❯ sw_vers
ProductName: macOS
ProductVersion: 15.1.1
BuildVersion: 24B2091
クライアント側 Windows
❯ systeminfo
OS 名: Microsoft Windows 11 Home
OS バージョン: 10.0.26100 N/A ビルド 26100
OS 製造元: Microsoft Corporation
OS 構成: スタンドアロン ワークステーション
OS ビルドの種類: Multiprocessor Free
プロセッサ: 11th Gen Intel(R) Core(TM) i7-1195G7 @ 2.90GHz 1.80 GHz
パスワード認証
Mac側
システム設定から「一般」→「共有」と進んで、高度な設定のところにある「リモートログイン」をオンにします。
このとき、下にローカルホスト名とあるので、これをメモしておきます。
この時点でWindows側からsshできると思います。
Windows側
Windowsでコマンドプロンプトを開いて、次のsshのコマンドを打ちます。
ssh [ユーザ名]@[ローカルホスト名]
fingerprintはとりあえずyesでパスワードを打てば、sshで接続できると思います。
公開鍵認証
次は公開鍵認証のやり方です。
鍵の生成
まず、Windows側で公開鍵と秘密鍵を作成します。
コマンドプロンプトでssh-keygen -t ed25519
とかを打って作ってください。
暗号方式はRSAでもいいですが、ed25519の方がセキュアで高速らしいです。
次にMac側に公開鍵(.pubファイル)を送って、Windows側では.sshフォルダの下に秘密鍵(拡張子なしの方)を保存します。
公開鍵はメールに添付とかクラウドストレージで共有とかすれば大丈夫です。
Mac側
先ほどMacに公開鍵を送ったので、これをauthorized_keysに登録します。
ユーザディレクトリ下の.sshフォルダ(なければ作る)にauthorized_keysというファイルを作って、送られた公開鍵の中身をコピペします。もともとあれば追記してください。
次に、sshの設定をするために、/etc/ssh/sshd_configの一番下の行に以下を追記してください
PasswordAuthentication no
PubkeyAuthentication yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PermitRootLogin no
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
はパスワード認証を無効、PubkeyAuthentication yes
は公開鍵認証を有効、PermitEmptyPasswords no
は空パスワード認証を無効(攻撃に備えて)、ChallengeResponseAuthentication no
はチャレンジ応答認証を無効(攻撃に備えて)、PermitRootLogin no
はルートでのログインを無効(セキュリティ向上のため)を設定しています。
最後のAuthorizedKeysFile .ssh/authorized_keys
はさっき設定した公開鍵のファイルの場所を示しています。
ここまでできたら一度sshを再起動した方がいいかもしれません。
設定から「リモートログイン」をオフにしてからオンにすると再起動できるようです。
Windows側
あとはssh接続するだけです。さっきのコマンドでログインできると思います。
ssh [ユーザ名]@[ローカルホスト名]
もしできなかったら、秘密鍵の設定が悪い?気がするのでconfigを設定しましょう。
.ssh/configに以下を追記します。
Host Mac
HostName [ローカルホスト名]
User [ユーザ名]
IdentityFile ~/.ssh/id_ed25519
最初の行のHost MacのMacの部分は好きな名前(わかりやすい名前)に変えて大丈夫です。
IdentityFileはさっき作った秘密鍵の場所を書きましょう。秘密鍵ファイルの名前は違うかもしれません。
これで、
ssh Mac
とすると、sshできると思います。(Macはさっきつけた名前)
お疲れさまでした。
コメント