Nedávno jsem začal používat WSL pro lokální vývoj, místo linuxového virtuálního stroje. Visual Studio Code má rozšíření na připojení se do běžící WSL instance, takže můžete programovat ve WSL, zatímco VS Code běží ve Windows.
Pokud používáte Git přes SSH (nebo dost používáte samotné SSH), může se vám hodit použití programu ssh-agent
. Zatímco na plnohodnotném linuxovém desktopu je to snadné, tady se mi nedařilo najít elegantní řešení, jak sdílet jednu instanci ssh-agent
a použít ji napříč všemi terminály a také VS Code serverem (to je ta část VS Code, která běží uvnitř WSL).
Řešení bylo překvapivě snadné a zahrnovalo použití nástroje Keychain. V distribuci založené na Debianu stačí spustit instalaci následujícím příkazem.
sudo apt-get install keychain
Následující kód přidejte do .profile
nebo .bash_profile
(nebo cokoliv vám funguje).
eval `keychain --noask --eval id_rsa`
Můžete vynechat přepínač --noask
, pokud chcete, aby se vás program rovnou zeptal na heslo k SSH klíči při prvním spuštění terminálu (Já nechci, raději mám možnost kdykoliv později spustit ssh-add
).
eval `keychain --eval id_rsa`
Aby měl ke stejnému démonu přístup i VS Code server, musíte stejný kód propašovat i do jeho prostředí. WSL rozšíření má svá data v adresáři ~/.vscode
.
Startovní prostředí můžete upravit pomocí souboru .vscode-server/server-env-setup
. Tento soubor je vyvolán shellem, který spouští server, takže když tam přidáte podobnou řádku (s přepínačem --noask
, protože se jedná o neinteraktivní shell), máte hotovo.
eval `keychain --noask --eval id_rsa`
Jakmile je keychain spuštěn, snaží se najít běžící existující ssh-agent socket a upraví prostředí tak, že SSH nástroje jej mohou použít. Tedy i Git ve VS Code.
Komentáře