私の Raspberry Pi はデフォルトの Debian イメージを実行しており、SSH が有効になっています。次のように Pi にログインします。
ssh pi@<IP-address-of-my-Pi>
毎回パスワードを入力しなければなりません。どうにかして Pi がローカル マシンからのログインを受け入れるようにできますか? Fedora Linux を実行しています。
答え1
はい、SSH を使用して Raspberry Pi での認証を自動化できます。
前提条件として、以下が必要です。
- あなたが持っているPiでSSHを有効にする。
- Pi の IP アドレスはわかっています。
リナックス
Linux では、パッケージ マネージャーを使用して SSH をインストールし、 を使用してキー ペアを生成しssh-keygen
、 を使用してキーを Pi にコピーしssh-copy-id
、 を使用してテストすることができますssh
。
LinuxにSSHをインストールする
ほとんどの Linux ディストリビューションには SSH クライアントがプリインストールされています。何らかの理由で SSH クライアントがインストールされていない場合は、パッケージ マネージャーを使用してインストールします。
RPM ベースの Linux ディストリビューション (Fedora や Suse など) の場合:
sudo yum install ssh
DEB ベースの Linux ディストリビューション (例: Debian および Ubuntu):
sudo apt-get install ssh
Linuxでキーペアを生成する
まず、公開鍵と秘密鍵のペアが必要です。キーペアがない場合は、次のコマンドを実行して、デフォルト設定でキーペアを生成します。
$ ssh-keygen
generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
24:55:ee:67:83:72:82:55:5f:b9:b4:09:2a:fa:56:a1 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| + . |
| S E |
| . + + |
| .o . o.|
| o.oo. oo|
| ==o.BO+|
+-----------------+
Linux上のPiに公開鍵をコピーする
次に、生成された公開鍵を、パスワードなしでログインするマシンにコピーする必要があります。マシンで次のコマンドを実行し、ユーザーとして Pi にアクセスできるようにします。
$ ssh-copy-id pi@<IP-address-of-your-Pi>
Password:
Now try logging into the machine, with "ssh 'pi@<IP-address-of-your-Pi>'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
Linux 上の Pi に SSH で接続する
最後に、SSH を使用してログインし、パスワードが要求されないことを確認します。
$ ssh pi@<IP-address-of-your-Pi>
答え2
コピーしようとしているファイルの権限をチェックして、SSH 経由でログインしているユーザーに読み取り権限があることを確認します。