ssh接続でパスワードを打つのが面倒なので、公開鍵認証にしてみよう
ご無沙汰しています、@Tanin_326です。
ここまでで、ssh接続ができるようになりました。
しかし、今のままでは、接続するたびにパスワードの入力が必要なので少々面倒です。
なので、公開鍵認証で、楽にRaspberry Piにアクセスできるようにしましょう。
目次
sshの公開鍵認証
mac上での鍵の作成
はじめに、Raspberry Piと接続を行うmac上で、鍵ファイルを作成します。
(接続端末がWindowsやLinuxなどの場合は、それぞれ専用の鍵作成手順を行ってください)
$ ssh-keygen -t rsa
鍵の名前を場所を聞いてくるので、デフォルトでよければそのままEnterを押します。
変更したい場合は、ここで鍵の名前をフルパスで入力します。
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/******/.ssh/id_rsa): ← ここで鍵のパスを入力
パスフレーズを入力します。
Enter passphrase (empty for no passphrase): ← パスフレーズを入力
Enter same passphrase again: ← もう1度入力
これで鍵のペア(秘密鍵:拡張子なし、公開鍵:.pub)が作成されたので、確認します。
ls .ssh
公開鍵の格納場所の設定
Raspberry Pi側に、公開鍵の格納場所を作成して、権限を変更しておきます。
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
Raspberry Piへ公開鍵をコピー
作成した鍵のうち、公開鍵をRaspberry Piへコピーします。
この時、鍵の名称を「authorized_keys」にします。
$ chmod 600 ~/.ssh/id_rsa.pub
$ scp ~/.ssh/id_rsa.pub pi@192.168.0.200:~/.ssh/authorized_keys
sshの設定変更
sshの設定を変更して、公開鍵認証での接続を行うようにします。
$ sudo vi /etc/ssh/sshd_config
接続ポート番号を変更します。
#Port 22 ← 初期値は22
Port 61203 ← 変更後のポート
rootログインを禁止します。
PermitRootLogin no ← root使用不可
パスワード認証を無効にします。
PasswordAuthentication no ← 無効
公開鍵ファイル認証を有効にします。
RSAAuthentication yes ← RSA認証の許可
PubkeyAuthentication yes ← 公開鍵認証の許可
AuthorizedKeysFile %h/.ssh/authorized_keys ← 公開鍵ファイルの指定
再起動と、接続の確認
設定変更後、Raspberry Piのsshを再起動します。
$ sudo /etc/init.d/ssh restart
再起動後、公開鍵認証でのssh接続を確認します。
$ sh -i ~/.ssh/id_rsa pi@192.168.0.200 -p 61203
初回は、sshキーのパスワードが確認されます。
これで、パスワードなしでssh接続できるようになりました。
より簡単にssh接続させるために
パスワードの入力は無くなりましたが、このままだと入力するコマンドが長くて不便です。
ですので、簡単にssh接続するための別名を登録します。
別名の登録
mac側のssh設定ファイルに、接続のための別名を登録します。
$ vi .ssh/config
Host raspi ← ホスト名(別名)
HostName 192.168.0.200 ← IPアドレス
User pi ← ユーザーID
Port 61203 ← ポート番号
IdentityFile ~/.ssh/id_rsa ← 秘密鍵ファイル
接続の確認
登録した別名で、ssh接続を確認します。
$ ssh raspi
これで、IPアドレスや鍵ファイル名を入力しなくても、ssh接続できるようになりました。
まとめ
ssh接続する時の煩わしさが、すっきりと解消されました。
うっひょー。
以上、@Tanin_326でした。