This guide explains how to use Teleport and Visual Studio Code's remote SSH extension.
for the Remote - SSH extension.
Configure your local SSH client to access Teleport nodes:
log in to your proxy:tsh login --proxy proxy.foo.example.com --user alice
generate the OpenSSH config for the proxy:tsh config --proxy proxy.foo.example.com
Append the resulting configuration snippet into your SSH config file located in the path below:
You should be able to connect to the desired node using following command:
ssh [email protected][node name].[cluster name]
For example, this should work:
Teleport's certificates expire fairly quickly, after which SSH attempts will fail with an error like the following:
[email protected]: Permission denied (publickey). ERROR: exit status 255 kex_exchange_identification: Connection closed by remote host
When you see this error, re-run
tsh login to refresh your local certificate.
Due to a VS Code bug,
you can not use Remote - SSH UI to add SSH hosts. It will improperly rewrite the quoting in
tsh config's generated configuration.
If your SSH configuration becomes corrupted, re-run
Install the Remote - SSH extension in your local VS Code instance. A new "Remote Explorer" sidebar entry should appear.
Select it, ensure "SSH Targets" is selected in the drop-down menu, and select the "Configure" gear icon:
VS code will prompt you SSH config file.
Select the one we generated during step 1 and open it in the editor.
Do not use VS Code's SSH config helper; if prompted for an SSH command, close the dialog and select the "Configure" icon instead.
For each host you wish to remotely develop on, add an entry like the following:
Host node000.foo.example.com User alice
When finished, save the file. If the added host doesn't automatically appear in the list, select the Refresh button.
Start a remote development session by right clicking on any host added above and selecting either "Connect to..." option:
On first connect, you'll be prompted to configure the remote OS; select the proper platform and VS Code will install its server-side component. When it completes, you should be left with a working editor:
The status indicator in the bottom left highlights the currently connected remote host.
It's possible to remotely develop on any OpenSSH host joined to a Teleport cluster so long as its host OS is supported by VS Code. Refer to the OpenSSH guide to configure the remote host to authenticate via Teleport certificates, after which the procedure outlined above can be used to connect to the host in VS Code.
This guide makes use of
tsh config, added in Teleport 7.0; refer to the
dedicated guide for additional information.
Manually configure an OpenSSH client to use the VS Code's remote SSH extension with older Teleport clients.