パスワード認証で自分のMacにリモートログインできるようにしていましたが、セキュリティ的に良くないので鍵認証によるログインに変更しました。
その時のことをメモとして残しておきます。
事前の準備として既にSSHログインが可能になっていることとします。
大体以下のような順序になります。
①公開鍵と秘密鍵を作る
Mac側の作業です。
ターミナルで以下のコマンドを実行します。
$ cd ~.ssh $ ssh-keygen -t rsa # パスワードを聞かれるので打ち込みます。 # パスワードが必要ない場合はEnterを押せば良いです。
・公開鍵: ~/.ssh/id_rsa.pub
・秘密鍵: ~/.ssh/id_rsa
として生成されます。
続いて公開鍵の内容をauthorized_keysファイルに追加し、権限を600にします。
なぜauthorized_keysファイルに追加するのかは後で少し触れます。
$ cat id_rsa.pub >> authorized_keys $ chmod 600 authorized_keys
②秘密鍵をSSHクライアントに登録する
iPadなどのSSHクライアントでの作業です。
①で作成した秘密鍵をSSHクライアントに登録します。
まず、秘密鍵をiPadなどのクライアント環境に落としてくる必要があります。
私はFTPクライアントがあったのでそこからipadにダウンロードしました。
他の方法としてはiCloud Driveに登録してipadに落としても良いでしょう。
大切なこととしては秘密鍵は他人にバレてはいけないものです。クライアントに登録後は即座にダウンロードフォルダなどに入れた秘密鍵ファイルは削除しましょう。
クライアントへの登録方法はアプリケーションごとに異なっているので割愛します。
私が使用しているShellyではファイルから秘密鍵をインポートすることが可能です。
③ssh_confの設定を変更する。
以下のファイルを編集します。編集前にバックアップをとっておくようにしましょう。
/etc/ssh/sshd_config
以下の項目を編集します。 - RSA公開鍵によるアクセスの有効化
RSAAuthentication yes PubkeyAuthentication yes
- authorized_keysへのパス
AuthorizedKeysFile /<あなたのホームディレクトリパス>/.ssh/authorized_keys
手順の②でauthorized_keysに公開鍵の内容を転写しましたが、その理由は上のようにauhorized_keysが公開鍵のパスとして設定されているからです。
ファイルの編集が終わったらsshサービスを再起動します。
$ sudo launchctl stop com.openssh.sshd
以上で公開鍵認証によるリモートログイン設定が完了です。