WindowsのVScodeからラズパイ(Raspbian)経由でエックスサーバーに接続しています。
c:/Users/あなたのユーザー名/.ssh/configファイルにProxyCommandを使って踏み台サーバ経由で接続します。 秘密鍵はラズパイ用もエックスサーバー用もローカルのWindowsのフォルダに保存しています。
手順
- エックスサーバーでSSHを有効にして、パスフレーズ設定、鍵を生成~ダウンロードしておく。(Windows フォルダに保存)
- ラズパイとSSH鍵でのSSH接続できるようにして、/.ssh/configファイルを作成しておく。
(ここを参照) - VScodeでラズパイ経由でエックスサーバーに接続する。
VScodeで多段SSHをするときは、/.ssh/configファイルのProxyCommandで接続しなければなりません。 その時は、踏み台サーバー(bastion)も秘密鍵の接続しか許可してくれません。 その為、ラズパイも予め秘密鍵接続にして、/.ssh/configファイルのProxyCommandに踏み台サーバーへの接続と次の段の接続サーバー(エックスサーバ)への接続設定を記述しておきます。
/.ssh/config 記述
上記の2で/.ssh/configファイルを下の様に作りました。 Windowsでは、c:/Users/ユーザー名/.ssh/configになります。
#踏み台サーバーとなるラズパイ Host bastion HostName 192.168.1.5 User pi Port 22 #Window10に保存したラズパイの秘密鍵のパス IdentityFile ~/Documents/IoT/Raspi/id_rsa #踏み台サーバーから接続する外部サーバー(エックスサーバー) Host xserver HostName sv1_ _ _ _.xserver.jp User xs4_ _ _ _ _ Port 10022 #Window10に保存したxserverの秘密鍵のパス。 バックスラッシュでもスラッシュでもいいみたいです。 IdentityFile ~\Documents\IoT\Xserver\xs4_ _ _ _ _.key ProxyCommand ssh -W %h:%p bastion
パラメータ | 説明 |
---|---|
Host | 適当なSSH接続名。 プロンプトから『ssh SSH接続名』で接続する時に使用する |
HostName | ホスト名 接続したいSSHサーバーのサーバ番号とドメインかIPアドレス |
Port | 接続したいSSHサーバーのポート番号 通常ポート番号は22 22は攻撃されやすいので、エックスサーバのようにポート番号を変えているサーバーもある。 エックスサーバーは10022 |
User | SSH接続のユーザー名 ラズパイ(Raspbian)の場合はpi。(初期値) エックスサーバーではサーバー番号と言っています。 |
IdentityFile | 鍵認証する秘密鍵ファイルのパス。 ファイル名も記述する。 |
ProxyCommand | 踏み台サーバー(bastion)経由で接続する際のsshコマンドを代わりに実行してくれるコマンド。 -W:ホスト名とポート番号を指定するオプション。 |
VScodeを開いて接続
- 左のメニューからモニターのアイコンの『Remote Explorer』をクリックする。
- /.ssh/configに書いたSSH接続名bastionとxserverが表示されるので、『xserver』を右クリック。
- Connect to Host in Current Windowを選択。
(現在のWindowでホストに接続)
VScodeは、c:/Users/ユーザー名/.ssh/configを自動で参照するので、/.ssh/configに記されたSSH接続名を認識しています。 bastionを選択すると、ラズパイにつながります。 (ラズパイのパスフレーズだけ聞いてきます。)
- パスフレーズを入力する。
1回目はラズパイと接続のパスフレーズを入力しEnterを押す。
- またまたもう一回パスフレーズを入力するように聞いてくるので、今度はエックスサーバーのパスフレーズを入力しEnterを押す。
- 右下に『SSH:xserver』と表示されつながっている事を確認。
- 左のメニューから一番上のファイルのアイコンの『Explorer』をクリック。
- 『Open Folder』をクリック。
- 右に表示されているフォルダから選ぶ。
- 上位6個しかフォルダは表示されませんが、下にスクロールできます。
- 『..』を選ぶと一つ上のフォルダに移動する。
- フォルダを選ぶと『OK』を押す。
- 何故かまた2回パスフレーズを入力するよう聞いてくるので、先ほどと同じように、1回目はラズパイのパスフレーズ(=パスワード)を入力し、2回目はエックスサーバーのパスフレーズを入力する。(最初はここで躓きました。)
次回同じフォルダを開く時はパスフレーズを聞かれる事なくフォルダを開けました。
- おめでとうございます。
SSHでエックスサーバーにつながりました。
コメント