LoginSignup
19
25

More than 5 years have passed since last update.

ラズパイにSSH接続(鍵認証)

Posted at

はじめに

RaspberryPiを購入したので自宅内でssh接続できる様に設定しました。
その際のメモです。

接続側で鍵作成

$ ssh-keygen -t rsa #強度を検討する必要あり。

保存場所とかパスフレーズとかを訊かれるけれど、入力せずEnterで次に。

$ ls ~/.ssh/
id_rsa  id_rsa.pub

な感じになっていればOKなはずです。

公開鍵をラズパイに送信

作成した公開鍵をSCPを使って送信します。

$ scp ~/.ssh/id_rsa.pub pi@192.168.nnn.nnn:~

これでラズパイのpiユーザーのホームディレクトリに公開鍵ファイルが置かれます。
:の後に~なり任意のディレクトリなりを付与しておかないとエラーになります。
はまりました。
今までホームディレクトリに送るという処理をした事が無かったので、空白ならホームディレクトリになるのかと勘違いしていました…。

ラズパイ側で公開鍵を設定

SCPした公開鍵が存在する事を確認してから次のコマンドで設定します。

$ cd ~
# 公開鍵の内容を追加。
$ cat id_rsa.pub >> .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
# SCPした公開鍵を削除削除
$ rm id_rsa.pub

もし~/.sshがない場合は作成して権限を700にしておきます。

ラズパイ側でSSHの設定

/etc/ssh/sshd_configを変更して各種設定を行います。

  • port番号変更
  • rootログインの禁止
  • 鍵認証を有効化
  • パスワード認証を無効化
# port番号設定
# 0〜65535の内で設定。
# 他で使われている番号もあるのでその辺りはよしなに。
Port nnnnn

# rootログインの禁止
PermitRootLogin no

# 鍵認証を有効化
PubkeyAuthentication yes

# パスワード認証を無効化
PasswordAuthentication no

その他、状況によって設定する項目は変わるので適切に設定する必要があります。
各々の意味は以下のページを参考にさせていただきました。

sshd_configの設定項目の理解を目指す

変更の後はsshサーバーを再起動して設定を反映します。

$ sudo /etc/init.d/ssh restart

有効になっているはず。

接続の確認

$ ssh -i .ssh/[非公開鍵] -p [port番号] pi@nnn.nnn.nnn.nnn

接続できればOKです。

接続の短縮

上記のsshコマンドだと結構コマンドが長くて面倒なので~/.ssh/configを設定します。

Host raspi
    HostName nnn.nnn.nnn.nnn
    User pi
    Port [ポート番号]
    IdentityFile [非公開鍵のパス]

これで以下のコマンドで接続できます。

ssh raspi

さいごに

普段は要件・設計・PGしかしておらず、こういう設定等はいつもやっていただいている人間なので、基本的に素人です。
その為、ツッコミどころとか間違っている部分とかが多数あると思いますので、ご教授いただけるとありがたいです。

ありがとうございました。

19
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
25