VSCode Remote-SSH and configuration sharing on WSL.

Wslssh

Wslssh forwards SSH command from VSCode Remote-SSH to WSL and enables SSH configuration sharing.

Quick Start Guide

Download or compile wslssh and put it into a directory in Windows filesystem (e.g. C:\Users\<Windows User>\bin\wslssh.exe).

Next, open VSCode configuration window and look for Remote.SSH: Path (or remote.SSH.path in the JSON file) and fill it with the absolute path to wslssh executable.

Then, to enable SSH configuration sharing with WSL, look for Remote.SSH: Config File (or remote.SSH.configFile) and fill it with the absolute path of the .ssh/config file, usually located in \\wsl$\<Distro Name>\home\<WSL User>\.ssh\config.

Now try to connect to one of the SSH Targets from the VSCode's Remote Explorer bar.

Caveats

This program only tested to work on WSL2.

SSH configuration sharing only works when the WSL distro is active. This is mainly due to the WSL filesystem mount limitation.

If the config file left unset, SSH command will be forwarded to the default WSL distro instead.

If the config file points to other than WSL mount directory, the SSH command will also be forwarded to the default WSL distro but it only would work if the path exists within the distro.

It is not possible to use different SSH config from other distro's SSH client binary (e.g. using Debian's ssh command with Ubuntu's $HOME/.ssh/config).

Why is it written in Go?

I don't have any experience in writing .bat or .ps1 scripts.

License

Copyright (c) 2021 Fadhli Dzil Ikram.

This software is licensed under the MIT license. Please see the license file for more information.

Owner
Fadhli Dzil Ikram
Senior AI Software Engineer
Fadhli Dzil Ikram
Similar Resources

A Go library and common interface for running local and remote commands

go-runcmd go-runcmd is a Go library and common interface for running local and remote commands providing the Runner interface which helps to abstract

Nov 25, 2021

A flexible commandline tool for template rendering. Supports lots of local and remote datasources.

A flexible commandline tool for template rendering. Supports lots of local and remote datasources.

Read the docs at docs.gomplate.ca, chat with developers and community in the #gomplate channel on Gophers Slack gomplate is a template renderer which

Jan 5, 2023

Chore is a elegant and simple tool for executing common tasks on remote servers.

Chore is a elegant and simple tool for executing common tasks on remote servers.

Chore is a tool for executing common tasks you run on your remote servers. You can easily setup tasks for deployment, commands, and more.

May 20, 2022

Testing local and remote shell commands in Go

Testing local and remote shell commands in Go. This is an (intentionally simplified) example of how unix shell commands can be unit-tested in Go. The

Nov 30, 2021

cTRL: a server for remote execution of pending tasks and commands in real time

Документация на русском: https://github.com/eltaline/ctrl/blob/master/README-RUS.md cTRL is a server written in Go language that uses a modified versi

Mar 3, 2022

A small CLI tool to check connection from a local machine to a remote target in various protocols.

CHK chk is a small CLI tool to check connection from a local machine to a remote target in various protocols.

Oct 10, 2022

Termial remote (mac) for Sony Bravia TV

Sony Bravia terminal remote Environment variables HOST: [....] PSK: [....] Configure the Bravia TV Todo: Scan network for a Bravia device Move and git

Nov 26, 2021

Command line tool makeing working with remote files esier.

Command line tool makeing working with remote files esier.

Jul 27, 2022

Virtualization system for remote code execution.

Delta CLI Command line application for executing source code inside of a container. Build: go build -o ./delta-cli ./main.go Usage: ./delta-cli path

Nov 20, 2021
Bucket-ssh. A fuzzy ssh manager for managing and categorizing ssh connections.
Bucket-ssh. A fuzzy ssh manager for managing and categorizing ssh connections.

Bssh is an ssh bucket for categorizing and automating ssh connections. Also, with parallel command execution and connection checks(pings) over categories (namespaces).

Oct 25, 2022
Advanced WSL launcher / installer. (Win10 FCU x64/arm64 or later.)
Advanced WSL launcher / installer. (Win10 FCU x64/arm64 or later.)

wsldl Advanced WSL Distribution Launcher / Installer Detailed documentation is here ?? Requirements Windows 10 1709 Fall Creators Update or later(x64/

Dec 24, 2022
Modern ls command with vscode like File Icon and Git Integrations. Written in Golang
Modern ls command with vscode like File Icon and Git Integrations. Written in Golang

logo-ls modern ls command with beautiful Icons and Git Integrations . Written in Golang Command and Arguments supported are listed in HELP.md Table of

Dec 29, 2022
Slack remote terminal - execute commands on remote host using slack slash command

slackRT Slack remote terminal - execute commands on remote host using slack slash command Installation Go to api.slack.com/apps and sign in and create

Jul 12, 2022
The neph command installs, configures, and executes cloud setup software on a remote device using passwordless SSH with root privileges

The neph command installs, configures, and executes cloud setup software on a remote device using passwordless SSH with root privileges. Usage 1) nep

Dec 31, 2021
Utility CLI to convert Spring Boot Yaml configuration into external configuration

boot-config-export Utility CLI to convert Spring Boot Yaml configuration into external configuration (as environment variables). The variables are tra

Nov 17, 2021
CLI for Shamir's Secret Sharing and AES key generation, encryption, and decryption.
CLI for Shamir's Secret Sharing and AES key generation, encryption, and decryption.

Shush ?? This simple program will help you run Shamir's Secret Sharing algorithm on any file using the split and merge commands.

Feb 1, 2022
Upterm is an open-source solution for sharing terminal sessions instantly over the public internet via secure tunnels.
Upterm is an open-source solution for sharing terminal sessions instantly over the public internet via secure tunnels.

Upterm is an open-source solution for sharing terminal sessions instantly over the public internet via secure tunnels.

Jan 8, 2023
Clipsync: a high performance clipboard sharing application for linux

clipsync: Clipboard sync Clipsync is a high performance clipboard sharing applic

Sep 18, 2022
cTRL is a server for remote execution of pending tasks and commands in real time, supporting a queue with continuous thread limiting and throttling.

Документация на русском: https://github.com/eltaline/ctrl/blob/master/README-RUS.md cTRL is a server written in Go language that uses a modified versi

Mar 3, 2022