VSCode Portable ModeでSSH設定もPortableにしたい場合のアレコレです。
標準ではSSH Configのパスは絶対パス指定なのでそのあたりなど。
なおWindowsでの話です。
結論
定義済み変数の ${execPath} から相対指定する。
config中の秘密鍵参照パスにも使える。
${execPath}/../.ssh/config
VSCode Portable Mode
まず VSCode Portable Mode について。
VSCodeはインストールせずにUSBメモリなどに入れて環境設定ごと持ち運ぶことができます。
手順としては以下の通り。
-
https://code.visualstudio.com/download から zip 版をダウンロードします。
これでこのCode.exeはPortable Modeで起動するようになり、設定などはすべてdataフォルダに保存されるようになります。
PortableなSSH設定
VSCodeのRemote SSHで利用されるSSH Configのパスは C:\Users\{USERNAME}\.ssh\config
か C:\ProgramData\ssh\ssh_config
になっています。(多分)
設定で特定のファイルパスを指定することもできますが、絶対パスしか受け付けておらず、素直に相対パスを指定すると一見動きそうでもSSH接続時に失敗します。
せっかくPortable版を使っていてもSSH設定が絶対パス指定では環境を持ち運べる恩恵が半減してしまいます。
そこでVSCodeディレクトリ内にSSH設定を持ってくるために、VSCodeの定義済み変数を用いた疑似相対パスを利用します。
定義済み変数の ${execPath}
は Code.exe のパスを示すため、ここから相対指定を行うことでVSCodeディレクトリ内の指定を行うことができます。
例えば ${execPath}/../.ssh/config
と指定すれば、 「Code.exeと同階層の.sshフォルダ内のconfigファイル」をSSH Configに指定することができます。
またこの定義済み変数はSSH Config中の設定値に対しても有効で、同じく絶対パス指定である秘密鍵も ${execPath}/../.ssh/id_ed25519
のように指定することができます。