IPv6 IPoE環境で自宅のRaspberryPiにsshできるようにする
自宅のインターネット回線をIPv6 IPoEに変えた影響で固定のIPv4グローバルIPを持てなくなり、外から自宅のRaspberryPiにアクセスすることができなくなっていた。
回線が速くなるなら仕方ないと思って半ば諦めていたが、以前VPN用に作ったGCPのサーバを経由すればIPv6環境でもアクセスできることが分かったので下記記事を参考に対応した。
- ssh reverse port forwarding + RaspberryPi おすすめのsystemd設定 - Qiita
- インターネット越しにRaspberry PIにSSH接続したいとき - Qiita
GCP設定
.ssh/authorized_keys
にRaspberryPiユーザの公開鍵を追加
RaspberryPi設定
- GCPに自動でssh接続するようにsystemd設定を追加
# /etc/systemd/system/ssh_rpfw.service
[Unit]
Description=ssh-reverse-port-forwarding-service
After=network.target auditd.service
[Service]
User=pi
Group=pi
WorkingDirectory=/home/pi
ExecStart=/usr/bin/ssh -oServerAliveInterval=10 -oExitOnForwardFailure=yes -oTCPKeepAlive=no -N -R 3022:127.0.0.1:22 {gcp_user}@{gcp_ip}
Restart=always
RestartSec=1
StartLimitBurst=0
[Install]
WantedBy=multi-user.target
- 自動起動設定
sudo systemctl daemon-reload
sudo systemctl start ssh_rpfw.service
sudo systemctl enable ssh_rpfw.service
接続元クライアント設定
~/.ssh/config
に以下を追加
Host gcp
HostName gcp_ip
User gcp_user
IdentityFile ~/.ssh/gcp
IdentitiesOnly yes
Host pi
User pi
Port 3022
HostName localhost
PubkeyAuthentication yes
IdentityFile ~/.ssh/pi
ProxyCommand ssh -W %h:%p gcp
これで外部ネットワークからでも ssh pi
でRaspberryPiにアクセスできるようになった。