他人の日記

楽をするために必死になる

ssh接続でパスワードを打つのが面倒なので、公開鍵認証にしてみよう

Raspi Colour R

鍵は正直者だけのためにある

ご無沙汰しています、@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キーのパスワードが確認されます。 20150505 01

これで、パスワードなしで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でした。

«
»