LoginSignup
51
49

More than 5 years have passed since last update.

RaspberryPiがどんなネットワークにいようと、raspiのIPアドレスを調べることなくssh接続できるようにする

Posted at

RaspberryPiを母艦に

RaspberryPiがどんなネットワークにいようと、raspiのIPアドレスを調べることなくmacbookからssh接続できるようにする。
これで、外出先でノマドしてても家にあるraspiの状態が見れるし、開発もできちゃうぞ
Github:https://github.com/mainyaa/RaspberryPi-Mothership

必要なもの

AWS/GCEにmicroやnanoインスタンス。月額300円ぐらい

簡単な説明

raspiからssh-tunnelインスタンスに常にssh Portforwardしている状態にします。いわゆるSSH Tunnelです。

[macbook] <-> [(port:22)ssh-tunnel(port:20022)] <-> [raspi]

環境構築

raspi

  • ssh-keygen
  • cat ~/.ssh/id_rsa.pub
    • ssh公開鍵をコピー

ssh-tunnel

  • ssh-tunnelインスタンスを立ち上げ、タイプはmicroやnano
  • ssh接続し、piユーザー追加、ssh公開鍵を貼り付け
    • ssh ssh-tunnel
    • useradd -s /bin/zsh -u 10000 -m -d /home/users/pi pi
    • sudo su - pi
    • mkdir .ssh
    • vim .ssh/authorized_keys
      • ssh公開鍵を張り付け

macbook

  • ~/.ssh/configに以下を追加。[]の部分は適宜書き換え
~/.ssh/config
Host ssh-tunnel
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  User pi
  Hostname [SSH-TUNNEL IP]
  LogLevel QUIET
  IdentityFile ~/.ssh/google_compute_engine
  • 繋がるか確認
    • ssh ssh-tunnel

raspi

  • ~/.ssh/configに以下を追加。[]の部分は適宜書き換え
~/.ssh/config
Host ssh-tunnel
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  User [USERNAME]
  Hostname [SSH-TUNNEL IP]
  LogLevel QUIET
  IdentityFile ~/.ssh/google_compute_engine
  • 繋がるか確認
    • ssh ssh-tunnel
  • 起動スクリプトを追加。Debianの起動スクリプト用意するのは面倒くさいからGithubにあげておきました
    • sudo apt-get install -y autossh
    • git clone https://github.com/mainyaa/RaspberryPi-Mothership.git
    • sudo cp ./RaspberryPi-Mothership/init.d/ssh_tunnel /etc/init.d/
    • sudo cp ./RaspberryPi-Mothership/sbin/ssh_tunnel /usr/sbin/
    • sudo insserv ssh_tunnel
    • sudo reboot

macbook(実際に繋いで見る)

  • 1度ssh-tunnelに接続。(ssh-tunnelがGCEの場合のみ)
    • gcloud compute --project "[PROJECT_ID]" ssh --zone "asia-east1-b" "ssh-tunnel"

macbookからraspiに接続

ssh -o 'ProxyCommand ssh ssh-tunnel nc %h %p' -p 20022 pi@localhost

  • これでRaspberryPiが母艦になりました!どこからでもssh-tunnelごしに繋がる!

つっこみ大歓迎

間違ってたり、もっと便利な方法があったら教えて下さい!PullReqも歓迎です!

勉強会&もくもく会やります

5/15にRaspberry Pi勉強会&もくもく会を開催します。
初心者もそうじゃない方もRaspberry Piで学んで遊ぼうというゆるい会です。発表者募集中

勉強会するとRaspberry Piで遊びたくなるよね。じゃあ、勉強会のあとにもくもくしたらいいじゃない!ということで、2部構成にしてみました。

51
49
3

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
51
49