MacでSSH認証のための公開鍵と秘密鍵を生成する。

わりとよくやる作業です。

「サーバに接続するから公開鍵よこせ」とか言われて、毎回管理者を困らせまくって来ました。
そろそろやり方をメモします。

SSH認証のための公開鍵と秘密鍵を生成する手順。

前提ですが、ここでのユーザは「you」です。


1.ターミナルを起動し、以下のコマンドを入力して実行する

$ssh-keygen
Enter file in which to save the key(/User/you/.ssh/id_rsa):/User/you/.ssh/id_rsa


2.表示された保存場所および名前「id_rsa」でよければそのままEnterを押してください。
  id_rsaがすでにある、あるいは、別の名前を使いたい場合は、「id_rsa」の部分を変更しましょう。
  「you」は、「your_rsa」という名前に変更しました。

Enter file in which to save the key (/Users/you/.ssh/id_rsa): /Users/you/.ssh/your_rsa


3.パスフレーズを設定します。「PASSPHRASE」のところに入力してください。
  もう一度入力を求められるので、同じパスフレーズを入力します。
  絶対に忘れないでくださいね!(とりあえずこの手順がすべて終わるまでは!)

Enter passphrase (empty for no passphrase): PASSPHRASE
Enter same passphrase again: もう一回入力


4.鍵が生成されたはず!
  ターミナルで以下のコマンドを実行すると、鍵があるかどうか確かめられます。

$cd ~/.ssh
$ls
your_rsa your_rsa.pub known_hosts


あった!


5.サーバやサービスには、「.pub」の付いた公開鍵を渡します。
  テキストエディタで開いて、文字がだーっと並んでいる部分だけコピペしてください。
  秘密鍵を渡したらダメです!!!


6.SSH認証でアクセスすると、一番上の画像のようにパスワードを訊かれます。
  鍵を生成するときに設定したパスフレーズを入力すればログイン成功!


  鍵の名前を「id_rsa」から変更した人は、すんなりログインできないかもしれません。
  以下の設定などを参考にしてください。

$ssh -i ~/.ssh/your_rsa

7.おまけ。
  秘密鍵を勝手に変更されたら困るので、管理者であるあなた以外は変更できないようにしちゃうコマンド。
  (所有者は読み書き可能/所有者以外はファイルに対する操作は一切不可にする)

chmod 600 your_rsa

参考

  • 以下のサイトを参考にさせていただきました。下の記事はスクリーンショットが多いのでわかりやすいかな?

 Mac OS XでSSHの公開鍵と秘密鍵を設定する。 - るるぷらす
 Mac OS XのSSH公開鍵と秘密鍵をまたFTP経由で設定し直した。 - るるぷらす

  • ssh-keygenって? コマンドについて調べるにはこちらを。

 http://www.unixuser.org/~euske/doc/openssh/jman/ssh-keygen.html