How to Use a New Windows Terminal App for Ssh? [Closed]
The Windows Terminal App Is Advertised as a Central Hub for All Terminal Work, So I'm Interested in a Way to Bring My Ssh Connections into It and Replace...
The Windows Terminal app is advertised as a central hub for all terminal work, so I'm interested in a way to bring my SSH connections into it and replace ancient PuTTY.
You can use a commandline field in your profile configuration to initiate an SSH connection on tab creation.
Step-by-step guide:
- Ensure you have an SSH client (try to connect to the server from a
Command Prompttab). @dhgouveia2's post details this step. - Open Settings (Ctrl+,)
- Find the
"list"array in the"profiles"object - Find a
Command Promptprofile ("commandline": "cmd.exe") - Duplicate the profile (copy-paste the whole object, watch for the comma between objects)
- Change the
"guid"value to a new GUID (for example, from here) - Change the
commandlinevalue to"commandline" : "ssh me@my-server -p 22 -i ~/.ssh/id_rsa"(use your own connection command). - Change the profile's
"name" - Add an
"icon" : "ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png"item to use a Tux icon (default icons are here) - You should have something like this:
{ "$schema": "", "profiles": { "list": [ // ... { "guid": "{1d43c510-93e8-4960-a18b-e432641e0930}", "name": "ssh my-server", "icon" : "ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png", "commandline": "ssh me@my-server -p 22 -i ~/.ssh/id_rsa" } ] } } - Save the configuration and enjoy the new item in the New Tab drop-down.
You can use native ssh client from Windows 10,
From powershell
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
# This should return the following output:
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
It should return the following output:
Path :
Online : True
RestartNeeded : False
Uninstall the OpenSSH Client
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add the hosts to your ssh config file
From your home folder, go to the .ssh/config file, the folder may not exist if the ssh application has not been used, so it will be necessary to create it on you home folder
C:\Users\%USERPROFILE%\.ssh
@Damo post a very good documentation about the ssh config.
e.g config
Host test
User test
HostName 127.0.0.1
Port 22
IdentityFile ~/.ssh/id_rsa
Windows Terminal
Similar to the @Himura instructions, but instead of using "bash.exe" you will using "ssh.exe".
For connection to the remote host, you can use the hostname from file e.g ssh.exe test, if you don't want to use a config file, you can use the user@ip ssh.exe test@127.0.0.1 and the password dialog will be promt
- Edit your
profile.jsonfrom the settings on Windows Terminal, - Duplicate a profile
- Change the "guid" value to a new GUID
- Change the commandline value with ssh.exe, e.g
"commandline" : "ssh.exe test" - Change the profile's "name"
e.g
C:\Users\%USERPROFILE%\.ssh\config
Host vagrant
Hostname 127.0.0.1
Port 2222
User vagrant
IdentityFile ~/.ssh/vagrant.key
profile.json
...
{
"acrylicOpacity" : 0.75,
"closeOnExit" : true,
"colorScheme" : "One Half Dark",
"commandline" : "ssh.exe vagrant",
"cursorColor" : "#FFFFFF",
"cursorShape" : "bar",
"fontFace" : "DejaVu Sans Mono for Powerline",
"fontSize" : 10,
"guid" : "{1777cdf0-b2c4-5a63-a204-1111f349ea7c}",
"historySize" : 9001,
"icon" : "ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png",
"name" : "Vagrant",
"padding" : "0, 0, 0, 0",
"snapOnInput" : true,
"startingDirectory" : "%USERPROFILE%",
"useAcrylic" : true
}
....
If you want to set the new entry as default, search for the defaultProfile key
....
"globals" :
{
"alwaysShowTabs" : true,
"copyOnSelect" : false,
"defaultProfile" : "{1777cdf0-b2c4-5a63-a204-1111f349ea7c}",
"initialCols" : 120,
"initialRows" : 30,
....
If you want to stay in the terminal and easily manage all your ssh connections inside WSL then i would recommend using the built in ssh config management in the ssh command.
Basically you put all your different ssh configurations in to the file ~/.ssh/config
There is a good post documenting the basic use of this here
Hope this helps.
If you want to connect to a machine on Google Compute Engine using Windows Terminal, you can write a script to replace the default command and use ssh instead of putty.exe. More details here.