GAミント至上主義

Web Monomaniacal Developer.

家のRaspberry Pi へのSSH接続を楽にする設定

家のローカルネットワーク経由でSSH経由でラズパイに入ることが増えてきたので、手間を減らすためにいろいろ設定する。
特にラズパイに限ったことではない気がする。

最終的には

ssh pi

だけでログインできるようになる。

使ったのはRaspberry Pi Zero WH

OSは

pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.9 (stretch)
Release:        9.9
Codename:       stretch

IPを固定する(DHCP内)

今までラズパイを再起動すると、前後してしまうので固定したかった。

下記を参考にした
Raspberry Pi に固定IPアドレスを割り当てる方法(Raspbian Jessie) - Qiita

# 現在のIPを確認する
# 作業前のログを残すの忘れたので、これは作業後のもの。
#  inet 192.168.0.81/24 で現在のIPと範囲を確認する。ルーター等によって違う。
# 今回は inet 192.168.0.6-9ぐらいで変わっていたので、
# /24なら一番右のところは変えて大丈夫そうという雑なネットワーク知識のもと81にした

$ pi@raspberrypi:~ $ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:40:53:0b brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.81/24 brd 192.168.0.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 240f:65:8a29:1:2bbd:361e:3a6c:9a0d/64 scope global mngtmpaddr noprefixroute dynamic 
       valid_lft 263sec preferred_lft 263sec
    inet6 fe80::636a:e31b:a209:3831/64 scope link 
       valid_lft forever preferred_lft forever
# 設定ファイルを開く
pi@raspberrypi:~ $ sudo vim /etc/dhcpcd.conf

# It is possible to fall back to a static IP if DHCP fails:
# define static profile
#profile static_eth0
static ip_address=192.168.0.81/24
#static routers=192.168.1.1
static domain_name_servers=192.168.0.1

static ip_addressのところだけ#をはずし、さっき決めたIPに変更する。
他のはそのままだったが今回は大丈夫だった。
static domain_name_serversを家のルーターのIPにしないと繋がらない場所が出てきた。

# 終わったら再起動して接続を確認する
pi@raspberrypi:~ $ sudo reboot

秘密鍵でログインする

SSHのたびに毎回パスワード打つの面倒なので、設定する。

公開鍵の作り方とかはありふれた情報なのでググる
SSH公開鍵認証で接続するまで - Qiita

今回はパスフレーズすら打ちたくないので、ラズパイ専用に新しくパスフレーズが空のものを作って設定した。
終わったら一度ログアウトして、サラッと入れるか試す。

.ssh/configで入力を省略する

詳しくは下記の記事。
~/.ssh/configについて - Qiita

# ラズパイではなく、ノートPCなどホスト側の作業
~$ vim .ssh/config

# 今回は下記3行だけ。
Host pi
HostName 192.168.0.81
User pi

確認する

~$ ssh pi
Linux raspberrypi 4.19.42+ #1219 Tue May 14 21:16:38 BST 2019 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Jun 29 00:00:30 2019 from 192.168.0.6
pi@raspberrypi:~ $ 

たった6文字入力で入れるようになった

またsshを使う、scpなどでも有効なので

scp ./filename pi:~/

だけでできるようになる。

おまけ

さらに.bashrcや.bash_profileなどにエイリアスを登録すれば

.bashrc

alias pi="ssh pi"
pi

だけでおうちのラズパイにログインできるようになる