🍝
VSCode Remote Developmentでラズパイにssh接続 & root取得
Qiita 「Visual Studio Code Advent Calendar 2021」 18日目の記事です。
注意
やりたいこと
- RaspberryPi上のAWS IoT Greengrassのログを確認する為に毎回ターミナルからコマンドを打つのが面倒なので、VSCodeで直接みれるといいなぁと思った
- Greengrassのログがrootでないと見れないところにあり、普通にsshで接続すると権限がないので、VSCodeのエクスプローラーにも表示できない。なのでrootも取得したい
- 毎回コンソールから
sudo su
して、tailとかvimでログファイル見るのはツラい
結果:VSCodeでGreengrassのログを直接見れました
VSCodeのRemote DevelopmentのSSH機能で、RemoteCommandが解禁されていたので、できました。
必要なVSCodeの拡張機能
-
Remote - SSH
とRemote - SSH: Editing Configuration Files
をv0.71
以上で導入
拡張機能の設定
VSCodeのsetting.jsonで下記の設定を入れる。
"remote.ssh.useLocalServer": true,
"remote.SSH.enableRemoteCommand": true,
OpenSSHの設定
.ssh/config
に下記のような感じで設定する。
-
RemoteCommand
にコマンドを書いて、rootを取りにいく -
RequestTTY
をtrue
にしないとsudoができない
Host pi_su
HostName raspberrypi.local
User pi
StrictHostKeyChecking no
RemoteCommand sudo su -
RequestTTY true
あとは接続すればOK
-
リモートエクスプローラーで、
.ssh/config
から接続先を選択- パスワードを聞かれたら入力する
- パスワードを聞かれたら入力する
-
しばらく待つとsshでラズパイにログインできるので、エクスプローラーで開きたいフォルダを開く
-
/
にしておけば全部見れる
-
-
ラズパイ内のファイルがVSCodeで見れる!
- 編集もできる!
- root権限が必要なGreengrassのログも見れる!
- もちろんコマンドも打てる!
結論
物凄く便利!
参考
Discussion