幻魔ナイトブログ

主に絵、音楽、プログラミングなどについて書きます。

MacのSSHログインで鍵認証を有効にする

f:id:MahiroN:20200718201834p:plain

パスワード認証で自分のMacにリモートログインできるようにしていましたが、セキュリティ的に良くないので鍵認証によるログインに変更しました。

その時のことをメモとして残しておきます。
事前の準備として既にSSHログインが可能になっていることとします。

大体以下のような順序になります。

  • ①公開鍵と秘密鍵を作る。
  • 秘密鍵SSHクライアントに登録する。
  • ssh_confの設定を変更する。

①公開鍵と秘密鍵を作る

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

以上で公開鍵認証によるリモートログイン設定が完了です。

参考

スマホからSSHで自宅のMacへ接続する方法 (前編) - 仕事効率化ブログ

お問合わせはこちら