IPv6 IPoE環境で自宅のRaspberryPiにsshできるようにする

公開日時
更新日時

自宅のインターネット回線をIPv6 IPoEに変えた影響で固定のIPv4グローバルIPを持てなくなり、外から自宅のRaspberryPiにアクセスすることができなくなっていた。

回線が速くなるなら仕方ないと思って半ば諦めていたが、以前VPN用に作ったGCPのサーバを経由すればIPv6環境でもアクセスできることが分かったので下記記事を参考に対応した。

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にアクセスできるようになった。


Related #gcp

CloudRunでnode.jsを動かす

リポジトリにpushしたらCloudRun上に自動デプロイ

Cloud FunctionsのNode.jsバージョンを更新する

package.jsonとcloudbuild.yamlを更新

Cloud BuildでFirebase Hostingのデプロイを行う

リポジトリへのpush以外をトリガーにしたい場合に使用

Firebase HostingのデプロイをWebhook(API)経由で行う

デプロイボタンが作れるようになった

CloudRunのレスポンスが429 Rate exceeded.になる

インスタンスの最大数を500に上げたらエラーは消えた