Open Ssh Online



This is the start page for the SSH (Secure Shell) protocol, software, and related information. SSH is a software package that enables secure system administration and file transfers over insecure networks. It is used in nearly every data center and in every large enterprise. Click “Add” afterwards and then click “Open” to open the SSH connection. You will also need to enter the address and port of the SSH server itself on the main “Session” screen before connecting, of course. People could then connect to port 8888 on the SSH server and their traffic would be tunneled to port 1234 on your local system.

Home |FAQ |Feedback |Licence |Updates |Mirrors |Keys |Links |Team
Download:Stable ·Pre-release ·Snapshot |Docs |Changes |Wishlist

PuTTY is a free implementation of SSH and Telnet for Windows and Unixplatforms, along with an xterm terminal emulator. It iswritten and maintained primarily bySimon Tatham.

The latest version is 0.74.Download it here.

LEGAL WARNING:Use of PuTTY, PSCP, PSFTP and Plink is illegal in countries whereencryption is outlawed. We believe it is legal to use PuTTY, PSCP,PSFTP and Plink in England and Wales and in many other countries, butwe are not lawyers, and so if in doubt you should seek legal advicebefore downloading it. You may find useful information atcryptolaw.org, which collectsinformation on cryptography laws in many countries, but wecan't vouch for its correctness.

Use of the Telnet-only binary (PuTTYtel) is unrestricted by anycryptography laws.

Latest news

2021-04-18 Pre-releases of 0.75 now available

We're working towards a 0.75 release. Pre-release builds are available, and we'd appreciate people testingthem and reporting any issues.

0.75 will be a feature release. The biggest changes all relate toPageant and/or SSH public keys. User-visible behaviour changes include:

  • Pageant now allows you to load a key without decrypting it, inwhich case it will wait until you first use it to ask for thepassphrase.
  • We've switched to the modern OpenSSH-style SHA-256 style of keyfingerprint.
Back-end changes that affect compatibility:
  • We've added support for the rsa-sha2-256 andrsa-sha2-512 signature methods, which some servers nowrequire in order to use RSA keys.
  • We've introduced a new version of the PPK format for private keyfiles, to remove weak crypto and improve password-guessingresistance.
  • We've introduced a new method for applications to talk to Pageanton Windows, based on the same named-pipe system used by connectionsharing instead of window messages.

2020-11-22 Primary git branch renamed

The primary branch in the PuTTY git repository is now called main,instead of git's default of master. For now, both branch namescontinue to exist, and are kept automatically in sync by a symbolic-ref on theserver. In a few months' time, the alias master will be withdrawn.

To update a normal downstream clone or checkout to use the new branch name, youcan run commands such as ‘git branch -m master main’ followed by‘git branch -u origin/main main’.

2020-06-27 PuTTY 0.74 released

PuTTY 0.74, released today, is a bug-fix and security release. Itfixes bugs in 0.73, including one possible vulnerability, and alsoadds anew configuration optionto mitigate a minor information leak in SSH host key policy.

2019-09-29 PuTTY 0.73 released

PuTTY 0.73, released today, is a bug-fix release. It fixes a small number of bugs since 0.72, and a couple of them have potential security implications.

2019-07-20 PuTTY 0.72 released

PuTTY 0.72, released today, is a bug-fix release. It fixes a smallnumber of further security issues found by the 2019 EU-fundedHackerOne bug bounty, and a variety of other bugs introduced in 0.71.

2019-07-08 Bug bounty concluded

The EU-funded bug bounty programme is now closed. Many thanks toeverybody who sent in reports!

Ssh

Anyone with a vulnerability to report should now go back to reportingit in the old way, via email to the PuTTY team, as described on theFeedback page.If you think it needs to be reported confidentially, encrypt it withour Secure Contact Key.

2019-03-25 Bug bounty continues

This year's EU-funded bug bounty programme is stillrunning. It was originally scheduled to end on 7th March, butthere was money left over in the budget. So while that money lasts,you still have a chance to earn some by finding vulnerabilities inPuTTY 0.71 or the development snapshots!

As before, vulnerabilities should be reported through theHackerOne web sitein order to qualify for a bounty: if you send reports directly to thePuTTY team in the usual way, then we'll still fix them, but we can'tprovide money for them.

2019-03-16 PuTTY 0.71 released

PuTTY 0.71, released today, includes a large number of security fixes,many of which were found by the recent EU-funded HackerOne bug bounty.There are also other security enhancements (side-channel resistance),and a few new features.It's also the first release to be built for Windows on Arm.

2019-01-18 EU bug bounty for finding vulnerabilities in PuTTY

From now until 7th March, you can earn money by reporting securityvulnerabilities in PuTTY!

HackerOne is running a bugbounty programme for PuTTY, funded by the European Union as partof the ‘Free and Open Source Software Audit’ project(EU-FOSSA 2). If you report a vulnerability through their web site, itmay qualify for a bounty. (The exact amount will depend on how seriousthe problem is, and there's also a bonus for providing a patch thatfixes it.)

For more details, or if you have something to report, see the linkabove.

(Please note that HackerOne will only consider vulnerabilitiesreported to them. If you send a report directly to the PuTTYteam in the usual way, then of course we'll still fix it, but we can'talso arrange for you to get paid.)

2018-08-25 GPG key rollover

This week we've generated a fresh set of GPG keys for signing PuTTYrelease and snapshot builds. We will begin signing snapshots with thenew snapshot key, and future releases with the new release key. Thenew master key is signed with the old master keys, of course. Seethe keys page for more information.

2017-07-08 PuTTY 0.70 released, containing security and bug fixes

PuTTY 0.70, released today, fixes further problems with Windows DLLhijacking, and also fixes a small number of bugs in 0.69, includingbroken printing support and Unicode keyboard input on Windows.

Site map

  • Licence conditions under which you mayuse PuTTY.
  • The FAQ.
  • The documentation.
  • Download PuTTY:
    • latest release 0.74
    • pre-releases of 0.75

  • Subscribe to the PuTTY-announcemailing list to be notified of new releases.
  • Feedback and bug reporting: contactaddress and guidelines. Please read the guidelines beforesending us mail; we get a very large amount of mail and it will helpus answer you more quickly.
  • Changes in recent releases.
  • Wish list and list of known bugs.
  • Links to related software andspecifications elsewhere.
  • A page about the PuTTY team members.
If you want to comment on this web site, see theFeedback page.
(last modified on Sun Apr 18 09:19:51 2021)

Summary

The integration of SSH has been a popular request among Windows users and SSH presents a renewed vision for remoting. Microsoft’s goal is to tightly integrate the open source Secure Shell (SSH) protocol with Windows and PowerShell. As a result, admins now have two-way remote management with PowerShell and SSH, from Linux to Windows and vice versa. We will also see that system administrators will be able to manage Linux servers, routers, switches, and other devices that allow for SSH. Realizing this vision is important as it allows traditional Windows and Linux admins to manage any operating system with a common skill set plus allowing for cross-platform code and scripts. What’s more, we see that configuration automation through Azure DSC can be leveraged for both Windows and Linux operating systems. Depending on the task, we can run the exact same PowerShell Core code on all platforms. Presently, there are caveats, limitations and the technology is continuing to evolve so keeping up to date is necessary. What this means for managing Office 365 in the future is also a question this author would like to know. Though, OpenSSH has arrived to the Windows OS after many years in development, and it’s still a work in progress as Microsoft’s PowerShell team is contributing to the development efforts of the open source OpenSSH community. This article will provide a step by step procedure for installing & configuring the new OpenSSH Server and client and also provide an explanation of the PowerShell remoting architecture as context. The article will cover remoting scenarios and steps however a walk-through for configuring Linux will not be part of this article.

Problem

  1. Microsoft is transitioning to “PowerShell Core” and cross-OS compatibility, while moving away from “Windows PowerShell”. Microsoft recently explained its “Windows PowerShell” roadmap plans, which will focus on “PowerShell Core”, going forward.
  2. There are now two editions of PowerShell called “Windows PowerShell” & “PowerShell Core”. However, there are no plans to introduce new functionality to “Windows PowerShell”.
  3. PowerShell remoting normally uses WinRM for connection negotiation and data transport, which is not supported in .NET Core so SSH was chosen for remoting since it allows true multi-platform remoting.
  4. Admins will be required to learn new remoting commands, use-cases and will need to update scripts.
  5. OpenSSH has to be installed and configured manually on both the server and client.
  6. Based on the various articles, there are a couple different ways to get SSH installed and configured on Windows OS.
  7. The install and configuration process can be a bit involved and has proven to be difficult for some administrators.
  8. Updated New-PSSession, Enter-PSSession and Invoke-Command cmdlets now have a new parameter set to facilitate the new remoting connections. Evolving cmdlets means admins must understand the differences and update their scripts at some point.

PowerShell Remoting Architecture

OpenSSH is a freely available collection of client/server utilities that enable secure remote login, remote file transfer, and public/private key pair management. As part of the OpenBSD project, the Secure Shell (SSH) protocol family of tools were developed and has been used for many years across the BSD, Linux, macOS, and Unix ecosystems. Back in 2015, the Microsoft PowerShell team announced support and commitment to the OpenSSH community and code base. This commitment resulted in direction and architectural changes for PowerShell.

Microsoft’s solution for PowerShell remoting was Windows Remote Management (WinRM) which handles remote connection negotiation and data transport by means of the WS-Management Protocol, which is based on SOAP (Simple Object Access Protocol). WinRM is an implementation of the Web Services for Management (WS-Man) specification, which takes advantage of firewall-friendly HTTP (TCP port 5985) or HTTPS (TCP port 5986) protocols to establish the communications channel.

Although Windows PowerShell users are used to WinRM as their remoting protocol with PowerShell, both customers and internal Microsoft product teams wanted to enable Windows to use SSH. The ability to use SSH provides a common user experience for Linux users to connect to Windows systems remotely and vice versa. SSH will likely become the remoting protocol of choice for Windows users and as part of the future direction of all Microsoft applications.

Given Microsoft’s new cross platform vision, the WinRM service is now considered limited by being Windows-specific. WinRM is not yet available as part of multi-platform PowerShell Core therefore, SSH was chosen for the remoting implementation since it is now available for both Linux and Windows platforms and allows multi-platform PowerShell remoting. Of note, the PowerShell team has configured the Linux PowerShell engine to do WS-Man remoting. Linux supports WS-Man remoting through PowerShell Remoting Protocol (MS-PSRP) and with the Open Management Infrastructure (OMI) provider. Installation of both OMI and the OMI provider on Linux is required for PowerShell remoting. Currently, PowerShell Core supports PowerShell Remoting (PSRP) over WSMan with Basic authentication on macOS and Linux, and with NTLM-based authentication on Linux. (Kerberos-based authentication is not supported.)

PuTTY on Windows is the most common SSH client utility, as it allows a Windows user to SSH into a Linux system. There are other third-party SSH server solutions for Windows, however an integrated Microsoft solution will allow for further application integration, extended functionality and support.

Online

Installing OpenSSH

Installing OpenSSH package Option 1) Manually from Github

  1. Download the latest build of OpenSSH from a web browser.
  2. Otherwise, download the latest build in an elevated PowerShell console, run the following:
    • Invoke-WebRequest https://github.com/PowerShell/Win32-OpenSSH/releases/download/v1.0.0.0/OpenSSH-Win64.zip -OutFile openssh.zip
  3. Extract contents of the latest build to C:Program FilesOpenSSH
  4. Otherwise, you can extract the zip file in an elevated Powershell console, run the following:
    • Expand-Archive .openssh.zip 'C:Program Files'
    • Verify the sub-directory name, as the command will create “OpenSSH-Win64”
  5. Launch PowerShell as an Administrator and go to the directory where the files have been extracted to:
    • cd 'c:Program FilesOpenSSH'
  6. In an elevated PowerShell console, run the following
    • powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
  7. Open the firewall for sshd.exe to allow inbound SSH connections
    • New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
  8. If you are running these commands on Windows 10, run the command
    • netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=sshd
  9. Start the windows service sshd (this will automatically generate host keys under %programdata%ssh if they don’t already exist)
  10. Run the command: Start-Service sshd
  11. Migrate sshd configuration:
    • To use existing customized sshd_config, you need to copy it from binary location to %programdata%sshsshd_config (Note that %programdata% is a hidden directory).
    • To use existing host keys, you need to copy them from binary location to %programdata%ssh
    • Prior versions required SSHD resources (sshd_config, host keys and authorized_keys) to have READ access to “NT ServiceSSHD”. This is no longer a requirement and the corresponding ACL entry should be removed. Run Powershell.exe -ExecutionPolicy Bypass -Command '. .FixHostFilePermissions.ps1 -Confirm:$false'(Note the first “.” is a call operator.) to fix up these permissions.
  12. Change the services sshd and ssh-agent to auto-start
    • Set-Service sshd -StartupType Automatic
    • Set-Service ssh-agent -StartupType Automatic
  13. Verify the change in the GUI and check for the services sshd & ssh-agent with: services.msc
  14. Configure the default ssh shell by running regedit.exe
  15. On the server, configure the default ssh shell in the windows registry by navigating to the key: ComputerHKEY_LOCAL_MACHINESOFTWAREOpenSSH
  16. Create a key called “DefaultShell” of type “REG_SZ”
  17. Enter the string value as “C:windowssystem32WindowsPowerShellv1.0powershell.exe”
  18. If PowerShell core is installed, then the string value will be “c:Program FilesPowerShell6.0.1pwsh.exe” (assuming version 6.0.1 however verify your installed version.)

Installing OpenSSH package Option 2) using PowerShell

Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Path :
Online : True
RestartNeeded : False

Installing the OpenSSH package Option 3) using Chocolatey

  1. There are multiple ways to install OpenSSH on Windows. Chocolatey automates a few of the tasks.
  2. Open PowerShell command prompt (or cmd.exe) as Administrator
  3. If Chocolatey is not installed, follow the steps documented on the chocolatey.org site
  4. Run the command: choco install openssh -params ‘”/SSHServerFeature /KeyBasedAuthenticationFeature”‘ –y

Installing OpenSSH package Option 4) using DISM.exe

Capability Identity : OpenSSH.Client~~~~0.0.1.0
Capability Identity : OpenSSH.Server~~~~0.0.1.0

dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

Installing OpenSSH package Option 5) using Windows Developer Mode

Windows Develop Mode is not Microsoft’s OpenSSH implementation. Do not install SSH this way. SSH services are enabled when you enable Device Discovery on your device. This is used when your device is a remote deployment target for UWP applications. The names of the services are ‘SSH Server Broker’ and ‘SSH Server Proxy’. The existing SSH server used in Windows Developer Mode is not yet protocol compliant.

Installing OpenSSH package Option 6) using Enable-SSHRemoting PowerShell Core Cmdlet

This feature is a roadmap item as part of the PowerShell Core documentation published on github here. Once this feature is beta or fully released, it will be explained in more detail in this article.

Windows Client Configuration Steps

Client Authentication Option 1) Password-based authentication

  1. Test the ssh command line by opening PowerShell command prompt (or cmd.exe) as Administrator.
  2. Run the command but replace your “user-account” and “remotehost”: ssh user-account@remotehost

Client Authentication Option 2) Key-based authentication

Authenticating via SSH is more secure with a key than a password, therefore, these steps are required. To set up a key, you have to generate it from your client and provide a passphrase. The defaults “id_rsa” are used as the file and RSA as the type.

Generating public/private ed25519 key pair.
Enter file in which to save the key (C:Usersuser1.sshid_ed25519):

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:Usersuser1.sshid_ed25519.
Your public key has been saved in C:Usersuser1.sshid_ed25519.pub.
The key fingerprint is:
SHA256:OIzc1yE7joL2Bzy8/gS0j8eGK7bYaH1FmF3sDuMeSj8 USER@HOSTNAME
The key's randomart image is:
+--[ED25519 256]--+
| . |
| o |
| . + + . |
| o B * = . |
| o= B S . |
| .=B O o |
| + =+% o |
| *oo.O.E |
|+.o+=o. . |
+----[SHA256]-----+

ssh --% USER@DOMAIN.com powershell -c $ConfirmPreference = 'None'; Repair-AuthorizedKeyPermission 'C:Usersuser1sshauthorized_keys'

Windows Server Configuration Steps of OpenSSH Server (sshd)

  1. RDP into the Windows Sever as an administrator
  2. Launch PowerShell command prompt (or cmd.exe) as Administrator
  3. Verify that PowerShell Core has been installed with the command: $PSVersionTable
  4. Check that PSEdition says “Core”, with the PSVersion at least 6.0.0.
  5. Update the Windows Server Enviroment Variables Path:
    • ($env:path).split(“;”)
    • $oldpath = (Get-ItemProperty -Path ‘Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment’ -Name PATH).path
    • $newpath = “$oldpath;C:Program FilesOpenSSH”
    • Set-ItemProperty -Path ‘Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment’ -Name PATH -Value $newPath
  6. Install the OpenSSHUtils as administrator by running: Install-Module -Force OpenSSHUtils
  7. Ensure the ssh-agent service is started by running: Get-Service ssh-agent
  8. Check that the status says “Running” otherwise
  9. Run the command: Start-Service ssh-agent
  10. Navigate to the OpenSSH folder: “C:Program FilesOpenSSH”
  11. Run the command: ssh-keygen.exe -A
  12. The public/private key pair will generate.
  13. Press Enter to accept the default file name and path of “id_rsa”. Otherwise you can specify a different name and path here.
  14. Enter a passphrase twice.
  15. The identification and public key files will be created called “id_rsa” and “id_rsa.pub” with the following output: “C:Program FilesOpenSSHssh-keygen.exe: generating new host keys: ED25519”
  16. Load the key files into the ssh-agent with the command: ssh-add ssh_host_ed25519_key
  17. Run the command: Repair-SshdHostKeyPermission -FilePath “C:Program FilesOpenSSHssh_host_ed25519_key”
  18. Chose “A” as the response.
  19. Run the command: Start-Service sshd
  20. Verify the service is in the Running state with the command: Get-Service sshd
  21. Add the firewall rule that allows traffic on port 22 with the command: New-NetFirewallRule -Name sshd -DisplayName ‘OpenSSH Server (sshd)’ -Service sshd -Enabled True -Direction Inbound -Protocol TCP -Action Allow -Profile Domain
  22. Go the the OpenSSH directory on the server.
  23. Open the file “sshd_config” with notepad.exe and add the following to the section “# override default of no subsystems”
    Subsystem powershell C:Program FilesPowerShell6.0.0.16pwsh.exe.exe -sshs -NoLogo -NoProfile
  24. Enable password authentication with the text: PasswordAuthentication yes
  25. Enable key authentication with the text: PubkeyAuthentication yes
  26. Close and save the sshd_config file.
  27. Run the command: Restart-Service sshd

PowerShell remoting

PowerShell remoting cmdlets will only allow connection with the command Enter-PSSession, Invoke-Command, etc. It will not work using ssh.exe to connect from the client.

References

  • OpenSSH
  • Chocolatey OpenSSH
  • Powershell OpenSSH
  • https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH
  • PSTools
  • Powershell make a permanent change to the path environment variable
  • Use Powershell to modify your enviromental path
  • Powershell Set Service
  • How do I open ports with Powershell
  • Getting Started with PowerShell Core on Windows, Mac, and Linux
  • Microsoft Transitioning Windows PowerShell 6.0 into PowerShell Core
  • PowerShell 6.0 Roadmap: CoreCLR, Backwards Compatibility, and More!
  • PowerShell Core 6.0: Generally Available (GA) and Supported! –
  • PowerShell Remoting Over SSH
  • Using the OpenSSH Beta in Windows 10 Fall Creators Update and Windows Server 1709
  • Why Remoting vs. SSH Isn’t Even a Thing
  • Porting to .NET Core – Libraries (See remoting section)
  • Part 2 – Install .NET Core and PowerShell on Linux Using DSC
  • Looking Forward: Microsoft Support for Secure Shell (SSH)
Share on FacebookShare on TwitterShare on WhatsAppShare on LinkedInShare on Tumblr

Open Ssh On Linux

Share on Reddit

Online Ssh Web Client

Share by Mail0replies

Leave a Reply

Want to join the discussion? Ssh
Feel free to contribute!

Leave a Reply