沢山センサー用意しなきゃならないのでメモがわりに
項目
- 必要なもの
- MacとSSH接続
- リモートデスクトップ
- VScodeのSSH接続
- ホスト名を変更(複数管理したい時にSSH周りで便利)
- IP固定etcは今後書くはず
1.必要なもの
- OS入れたばかりのSDカード
- ラズパイ
- モニター(あった方が楽)
- キーボード(〃)
- マウス(〃)
- XQuartz(https://www.xquartz.org/)
2.MacとSSH接続
下準備
$ touch /Volumes/boot/ssh
boot下にwpa_supplicant.conf
というファイルを作成、中身は
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="SSID"
psk="wifiパスワード"
}
SDカードをラズパイに接続し、下記でSSH接続
$ ssh pi@raspberrypi.local
#要求されるパスワードはraspberry
接続後、/etc/hostname
、/etc/hosts
内にあるraspberrypi
を好きなホスト名に変更
それによってssh pi@ホスト名
で接続できる様になる
エラーが出る場合
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
3項目下辺りに対処法有り
raspberry piサイド
- とりあえずSD刺してモニターその他諸々接続したラズパイを起動
- 基本同じ無線に接続した方が楽
-
raspberrypiの設定
から解像度を適当に弄って見やすくしておく(大きめが良い) - ラズパイのターミナルを開いて...
$sudo raspi-config
#これでセットアップインターフェースが出る
#`Interfacing Options`を選択し、SSH云々書いて有るところをEnter
#enableするか聞いてくるのでyes
#`Finish`で終了
- ここですかさずラズパイのIPを確認
- 恐らくWi-Fiのマークにカーソルを合わせればIPが表示される
- されない場合はラズパイでip a
かMacでarp -a
をしてそれっぽいのを探す
Macサイド
- ターミナルを開き...
$ssh pi@IPアドレス
#パスワードはraspberryがデフォルト
pi@raspberrypi:~ $
#これが表示されればSSH接続完了
#シャットダウンせず接続を切るには
pi@raspberrypi:~ $exit
#シャットダウンしちゃうには
pi@raspberrypi:~ $sudo shutdown -h now
エラーが出た場合
- これが出た場合
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- ホストキーが何やらと言っているので修正する
- エラー文の
Add correct host key in [/Users/ユーザ名/.ssh/known_hosts] to get rid of this message.
[ ]
で囲んだ部分をコピーし、vi /Users/ユーザ名/.ssh/known_hosts
する
- このエラー文の下に
/Users/ユーザ名/.ssh/known_hosts:行数
が書いてあるので、そこをコメントアウトし保存終了 - もう一度SSH接続をしてみよう
3.リモートデスクトップ
- モニターで表示されていた画面をMac上で表示、操作出来る様にする
- 事前に**XQuartz(https://www.xquartz.org/)**を入れておこう!
- raspberry piを起動
- Macのターミナルを開く
$ssh -X pi@ラズパイのIPアドレス
#パスワードは前述同様(変えてないなら)
pi@raspberrypi:~ $x-session-manager
これでraspberry piのモニターが表示されたら完了
終わらせるときは普通に終了しちゃって良いんじゃないかしら
4.VScodeのSSH接続
いちいちvi
でスクリプト書くのはだるい、MacのVScode
からリモートでraspberry piに接続出来る!
- raspberry piの電源を付ける
- VScodeの拡張機能から
Remote - SSH(Nightly)
をインストール - 青い方じゃなくて緑の方を入れる
- 追記:
Remote - SSH(Nightly)
は削除された様です、現状はRemote - SSH
(青い方)で出来ます
- 追記:
拡張機能を入れると左端の項目欄?に
PCっぽいマークが出るので選択。
-
SSH TARGETS
の左横に歯車があるのでクリック -
\Users\ユーザ名\.ssh\config
があるならそれを選択 - 無いなら
Settings
から↑っぽいのを作ろう -
config
に書き込めるので...
Host 設定してるホスト名(/etc/hostsの中見たらわかると思う)
HostName raspberry piのIPアドレス(または/etc/hostnameの中身)
User pi
(もしかしたら↑の括弧内逆かも)
これで保存。
- 保存したのちに
SSH TARGETS
にホスト名
が出てくるので、その右端にあるConnect to Host in New window
を選択 - ウィンドウが開いて暫く待つとパスワードが要求されるので、今まで通りのを入力
- これで完了!
フォルダーを開くとraspberry pi上のディレクトリから選択できる。
ここで保存すると向こうにちゃんと反映してくれる。
新しいraspberry piを接続しようとしたら出来なくなった...
VSCode
→ View
→ Command Palette
→ "remote"と入力
→ Remote-SSH:Kill VS Code Server on Host ~~ を選択
→ 該当の設定をkill
→ もう一回接続
5.ホスト名を変更
複数管理する時に、SSHにIP使っていると環境が変わった際に不便。
なのでホスト名で管理する。
二段階の作業が必要
まずはviで/etc/hosts
を開いて
raspberry
↑
好きなホスト名に変更
次に同様viで/etc/hostname
を開いて
127.0.1.1 raspberry
↑
前述と同じホスト名に変更
これで一度シャットダウンし再起動
暫く待ってホスト名でssh接続出来るか確認する
終わりに
取り敢えずここまで!
IP固定云々はまた今度
追記
ルータの交換等、何かしらで急にpip/apt/ネット
が動かなくなった時
Wi-Fiには繋がってるしローカルでSSHも出来るけど、外部への接続が出来ない時
# 有線で繋いでいる時
$ sudo dhclient eth0
# 無線で繋いでいる時
$ sudo dhclient wlan0
IPアドレスを振り直すと直る