よしかわーるど

プログラミングで世界を変える

Raspberry Pi のSSH接続設定

はじめに

OSのダウンロード

Download Raspbian for Raspberry Pi

上記のリンクからOSをダウンロードします

「Raspbian Buster with desktop and recommended software」でもオッケー👍

Etcherのダウンロード

balenaEtcher - Home

OSを書き込むためのEtcherもダウンロードしましょう

OSの書き込み

「(リリース日)raspbian-buster-full」というISOファイルがダウンロードディレクトリにあるはずです.

Etcherを開き、ISOイメージを指定、フォーマットが完了したSDカードを指定します.

Flash!」をクリックします.

待ちます

完了したらSDカードを抜き, ラズベリーパイに挿してあげましょう.

電源を入れる

5.1V, 2.5AのマイクロUSBのスイッチングアダプターをラズベリーパイに挿して電源を入れる.

Raspberry PiSSH接続するための設定

Raspberry PiSSH接続設定をONにします。

f:id:yoshikawataiki:20190816001639j:plain

f:id:yoshikawataiki:20190816001643j:plain

Would you like the SSH server to be enabled?

SSHサーバーを有効にしますか?って聞かれるので「はい(Yes)」

Hostnameの変更

raspi-configのメニューから 2 Network Options - Hostname を選択する。

変更を適用するためにRaspberry Piの再起動をします。

Raspberry PiのローカルIP固定設定

/etc/dhcpcd.conf を編集します. 下記を追記します.

interface eth0
static ip_address=10.0.1.197/24
static routers=10.0.1.1
static domain_name_servers=8.8.8.8

ルータやDNSサーバの設定値は、環境に合わせて変更してください

設定内容の反映

DHCPサービスをリスタートすれば, 反映されるはず

sudo systemctl restart dhcpcd

一応, networkingも

sudo systemctl restart networking

公開鍵認証方式の設定

公開鍵・秘密鍵の作成をする

SSH Keys について詳しく知りたいことがあれば、各自で調べて下さい。

今回は、OpenSSH のssh-keygenというコマンドを使います。

ECDSAというアルゴリズムで鍵を作成します。

$ install -m 0700 -d ~/.ssh
$ cd ~/.ssh

ちなみに 521bit というのは typo ではありませんので、あしからず。

参考: 楕円曲線暗号に 512 bit は存在しない

以下の○○、yoshikawataiki@gmail.comを自分で書き換えて下さい。

$ ssh-keygen -t ecdsa -b 521 -f ○○-raspberry -C "yoshikawataiki@gmail.com"

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):  <-- パスフレーズを入力(任意)
Enter same passphrase again:  <-- もう一度、パスフレーズを入力(任意)

鍵をラズパイに登録する

作成した ssh 公開鍵を Raspberry Pi にコピーします。 ssh-copy-id が使える場合は楽にコピーすることができます。

$ ssh-copy-id -i [公開鍵のファイルパス] [ユーザ名]@[raspberry pi の IP アドレス or ホスト名]

実行例
$ ssh-copy-id -i ~/.ssh/raspberrypi/○○-raspberry.pub pi@raspberrypi.local

ssh configを書く

記入例

Host rasp1
    HostName raspberrypi.local
    User pi
    IdentityFile ~/.ssh/raspberrypi/○○-raspberry.pub
    Port 22
    TCPKeepAlive yes
    IdentitiesOnly yes
keyword 内容
Host ホスト名
HostName ホストのアドレスか IP アドレス
User ログインユーザ名
IdentityFile ログインするための秘密鍵のパス
TCPKeepAlive 接続状態を継続するかどうか
IdentitiesOnly IdentityFile が必要かどうか

上記のように記載しておくと以下のコマンドで ssh 接続できます。

$ ssh rasp1

参考文献

Raspberry Pi3のLAN外からのSSH接続設定方法 - Qiita

Raspberry Pi 3 (Raspbian Jessie)の無線LANに固定IPアドレスを設定する - Qiita