What we want to do
- 同じprivate networkに属しているmacOS端末に対して公開鍵認証を用いてssh接続したい
同じprovate networkに属している前提の端末へのsshになるので
ssh hoshinokirby@192.168.10.110のように自宅内のネットワークのみで有効なプライベートIPアドレス(クラスC 192.168.0.0 ~ 192.168.255.255)を指定してアクセスすることを想定しています.
How to set up
▶ Server側
SSHサーバー側はopenssh-serverなりssh serverが動いている必要があります.
System Preferences > SharingをクリックRemote Loginを有効化
以上の2ステップで,macOS側のSSH serverをactive状態にすることができます.
▶ Client側
パスワード認証の場合は
arpコマンドでアクセス先端末のプライベートIPアドレスを検索sshコマンドでアクセス
で完了となりますが,今回は公開鍵認証手順を紹介します.公開鍵認証の場合は
- SSH Key Pair の作成
- 公開鍵の登録(接続先の
authorized_keysファイル(~/.ssh/authorized_keys)に追加) sshコマンドでアクセスとなります
SSH Key Pair の作成
ssh-keygen -t rsa -b 4096 -f ~/.ssh/pupupu_land-t rsa: key typeの指定-b 4096: key lengthの指定(長いほどsecurity強固になる)-f ~/.ssh/pupupu_land: key pairの生成先とファイル名(今回はpupupu_land,pupupu_land.pubが生成される)
公開鍵の登録
ssh-copy-id -i ~/.ssh/pupupu_land.pub username@<target-ip>-i ~/.ssh/pupupu_land.pub: コピーする公開鍵ファイルを指定
公開鍵を登録するには,
- 公開鍵のファイルをコピー
- 接続先の
authorized_keysファイル(~/.ssh/authorized_keys)に追加 authorized_keysファイルがない場合は作成後に適切なパーミッションを設定
が必要となりますが,ssh-copy-idコマンドですべて自動実行することができるというメリットがあります.
▶ ssh connection
上記の設定後,sshコマンド実行することで,macOSへアクセスすることができます. 毎回プライベートIPアドレスを調べるのが億劫な場合,デバイスのMACアドレスがわかればarpコマンドで以下のように検索することもできます.
arp -a | grep <MAC-address> | awk -F'[()]' '{print $2}'