備忘録 ~趣味に没頭できるといいなぁ~

半ば趣味、半ば勉強で身につけた技術に関する忘備録、のはず... 不定期更新です。

RSA公開鍵認証によるssh通信の設定

パスワードではなくRSA公開鍵による認証でssh通信を行うように設定したので、その時の手順をメモしておきます。

導入環境

サーバ:raspberry pi(B+)
クライアント:mac mini

鍵の生成

クライアントで鍵の生成を行います。

$ cd ~  
$ mkdir .ssh  
$ cd .ssh  
$ ssh-keygen -t rsa  

と打ち込むと

Generating public/private rsa key pair.  
Enter file in which to save the key (/Users/User/.ssh/id_rsa):  
Enter passphrase (empty for no passphrase):   
Enter same passphrase again:  

と聞かれるので、上から順に、鍵の名前(defaultではid_rsa)、パスワード、パスワードの確認の順に記入します。全てEnterを押し、記入しなくても作成できます。

$ ls

コマンドで確認すると、id_rsa(秘密鍵)、id_rsa.pub(公開鍵)が作成されているのが確認できます。

鍵の登録

クライアントで作成した、公開鍵をサーバに送ります。
今回はscpコマンドで送信しました。

$ scp id_rsa.pub 送信先ユーザ名@送信先アドレス:~/.ssh

コマンドの記述は、環境に合わせ適宜行ってください。 サーバに送った公開鍵を登録します。
ここからは、サーバ側での操作になります。

$ cat id_rsa.pub >> authorized_keys  
$ rm id_rsa.pub  

上記のコマンドで登録完了です。id_rsa.pubは削除しておきましょう。

通信の簡略化

以上の登録までで、パスワードを利用せずにssh接続できるようになりました。
しかし、アドレスの記述をするのも面倒くさいので簡略化します。 まぁ、参考程度に。
クライアント側での操作です。

$ pwd  
/Users/user/.ssh  
$ vim config  
Host ssh-pc  
  HostName サーバのアドレス  
  port 22  
  User ユーザ名  
  IdentityFile ~/.ssh/id_rsa  

保存し、以下のようなコマンドで接続できるようになります。

ssh ssh-pc

以上です。これで、パスワードなしで通信できます。
一行でアクセスできるようになって便利だ...