私は、Windows の VSCode を使って、ラズパイ (Raspberry Pi) へ接続し、操作をするということをよくやります。ただ初期の環境設定を手抜きすると、接続のたびにパスワードの要求が発生して手間が掛かります。頻繁にこの環境を使う場合には、パスワードなしにできると便利です。
ただ、この手順がいつも迷うので、パスワード認証のほうで済ませてしまうのですが、今回自分のために記事にすることにしました。次回以降は本記事を参照してセットアップしようという考えです。なお、Raspberry Pi を対象としていますが、基本的には Linux サーバーに対しても同様に適用可能なはずです。
ここでWindows環境は Windows11 、 Raspberry Pi は Raspberry Pi 4 の Rasypberry Pi OS (bookworm) を使用しています。
Windows 側での作業
VS Codeを使って操作する側になります。Remote SSH でラズパイにつなぎに行きます。
ssh キーファイルの作成
まずは SSH のキー情報を以下のコマンドで作成します。”-f” オプションでファイル名を指定していますが、このオプションを省略すると id_rsa および id_rsa.pub ファイルが生成されます。
C:\Users\techma\.ssh> ssh-keygen -f raspberrypi4
コマンド実行後パスフレーズが聞かれるので、パスフレーズを入力するか、空エンター打ちして進めます。
VSCodeの設定
VSCode で Remote-SSH の設定をします。構成ファイルを開きます。ここで選択するファイルは、「(ユーザーフォルダ)/.ssh/config」のほうを選択します。
そして、設定内容に以下のようなものを追記します。各設定は予測がつくと思いますが、次のような内訳となっています。
Host Rpi4
HostName 192.168.xxx.yyy
User pi
IdentityFile “C:\Users\techma\.ssh\raspberrypi4.key”
- Host : 接続名
- HostName : 接続先のアドレス情報
- User : ssh 接続で使用するユーザー名
- IdentityFile : 先ほど生成した秘密鍵ファイルのパス
Raspberry Pi 側での作業
Windows からVS Code (Remote SSH) で接続される側になります。
公開鍵を Windows から Raspberry Pi へコピー
Windowsで生成した raspberrypi4.pub ファイルをラズパイのほうへコピーします。
そして、ログインユーザーの.ssh以下にある authorized_keys ファイルに内容を追記します。
ファイルがホームディレクトリにコピーされている状態で、以下のようなコマンドを実行して authorized_keys ファイルに追記します。このファイルがない場合には新規作成で問題ありません。
$ cd ~/
$ cat raspberrypi4.pub >> .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys (念のためのパーミッション変更)
authorized_keys ファイルを新規作成という場合があるので、上記ではパーミッション変更を含めてあります。
動作確認
設定が終わったので、 Windows 側の VS Codeから接続をして動作確認をします。コマンドパレットから以下のように開始できます。
あるいは、VS Code左側アクティビティバーから、リモートエクスプローラーのボタンを選択し、リモートエクスプローラーのビューを表示し、そこから先ほど登録したホストを選択することもできます。
このときにパスワードを要求されなければ、処置が完了しています。うまくいかない場合には、出力されているログから原因を探すのが必要です。よくあるパターンとしては、鍵ファイルのパスをミスしているか、正しい組み合わせを送っていないか、などです。
コメント