Hacker News new | past | comments | ask | show | jobs | submit login
PuTTY 0.73 (tartarus.org)
134 points by theandrewbailey 15 days ago | hide | past | web | favorite | 119 comments

PuTTY is fine of course, but just FYI to those who don’t realize it: Microsoft has worked for a while to port OpenSSH to Windows proper. I think they are even shipping it with Windows nowadays.


Yes, %Windir%\System32\OpenSSH has all the OpenSSH binaries. It also ships with curl and tar. No gzip, although tar understands the z option.

PS. Most shockingly of all, Windows's Notepad reads and writes Unix-style LF-terminated files.

I first hit the lack of LF line endings support at around age 11 on Windows 98. It’s genuinely pretty weird to realize it’s finally fixed

Interesting. Wordpad could always handle LF-only well enough and came with Windows 95 and onwards so you could always use that. Not sure why that wasn’t more widely known. (Though on newly added lines it did add CR+LF rather than staying consistent to the source file).

The trouble with Wordpad was that it was not a good editor for plaintext. It was clearly designed for rich text. I preferred third party editors very greatly.

Kind of like TextEdit is on macOS is today (the one bundled with the OS).

It's slightly annoying that you have to twiddle a bunch of the preferences to make it a workable plaintext editor. Apple should just delete its rich text functionality, now that they bundle a real word processor (Pages) with the OS.

IMO, you have to twiddle exactly one preference, exactly once, to make TextEdit a workable plaintext editor.

In TextEdit -> Preferences..., select the "Plain text" radio button. New documents are created as plain text now.

Kind of, but to be safe you have to change 12 preferences from the defaults, IMO.

  New Document:
      Plain Text (select)
      Check spelling as you type (disable)
      Correct spelling automatically (disable)
      Smart copy/paste (disable)
      Smart quotes (disable)
      Smart dashes (disable)
      Text replacement (disable)
  Open and Save:
    When Opening a File:
      Display HTML files as HTML code instead of formatted text (enable)
      Display RTF files as RTF code instead of formatted text (enable)
    When Saving a File:
      Add ".txt" extension to plain text files (disable)
    Plain Text File Encoding:
      Opening files = Unicode (UTF-8)
      Saving files = Unicode (UTF-8)

I got sick of textedit and installed open source atom

Also, back in the day opening a 5MB logfile in Wordpad was a recipe for stalling your system.

Back in the day Notepad had a 32K file size limit as well. No stalling, but also no viewing your log file that way.

IIRC Wordpad could handle LF but not UTF-8 and Notepad could handle UTF-8 but not LF (^_^)

I was aware, but 3rd party editors like Notepad2 or Notepad++ were much better than Wordpad for lightweight program editing as they also had syntax highlighting, auto-indent, etc.

Now if they only could get rid of the Byte Order Mark in CSV files created in Excel or Powershell...

Also, can't you install and enable Windows Subsystem for Linux (beta) and then you get ssh?

You can and you get the advantage of having a proper package manager too. Or incase you're (still) on Windows 7 or can't enable WSL you can install mysys2 which comes with SSH(and bash) aswell.

Are those applications installed by default these days?

Not enabled by default but you can easily switch it on from powershell.

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

Mobatek's MobaXterm is a truly superior product:


SSH, remote desktops, hugs & cupcakes for all my friends!

MobaXterm is not free/open source software. This may or may not be relevant to you of course.

What do you mean? They offer a paid version with some minor bennies.

The product is of sufficient value that it's worth supporting.

From: https://mobaxterm.mobatek.net/

> Tabbed terminal with SSH > Based on PuTTY with antialiased fonts and macro support

MobaXterm and PuTTY cover very different use-cases, PuTTY being a subset with close to 100% feature parity.

It’s a great Swiss-army-knife of a terminal. One annoying thing that I’ve lived with for years is that it won’t start on my second monitor. I always have to move its window after starting it. I tried to file a bug years ago, but couldn’t find a way to do it on their website. Maybe it’s time to look again.

You're comparing an SSH implementation with a terminal (that seems to also include an SSH implementation).

For Terminals, Windows has a number of outstanding terminal apps:

- Windows Terminal (a tabbed terminal made by Microsoft)

- Fluent

- Hyper 3

- Terminus

- ConEmu

And a billion other maintained tabbed terminals, some with an SSH UI if you want it. As an SSH implementation though, openssh is probably the best.

That's right, putty is usable terminal first. I can get ssh in various ways on windows. Decent linux terminal is hard to find though. Nothing comes close to putty and clones. The worst part in various contenders is output speed. Many of them are ridiculously slow. I don't care how pretty that Electron-based terminal is if it's dog slow.

I don't know what "Decent linux terminal is hard to find though" means.

Linux has great terminals. Gnome Terminal and KTerm.

If by 'Linux terminal' you just mean terminal, Windows Terminal and Fluent aren't Electron based and are both quite fast.

I meant a terminal on windows to ssh to linux. Simple test - cat 50k lines of some logs. See how long it takes on various terminals. Under remote screen/tmux see if you can switch windows while it keeps flooding the screen. There is no reason for terminal to be slower than ssh. I tried windows terminal and it's slow.

Of course there are also fonts, copy/paste, colors, keys customization etc. But slowness is a deal breaker for me.

Ah I normally think of performance as in interactive latency.

You probably want alacritty then, it's GPU accelerated and designed to be ultra fast. No tabs, it's expected you add a Windows based tabbing window manager.

alacritty is ok-ish. Probably better than most alternatives. Putty is still faster. And putty switches between tmux windows immediately while streaming the output. While alacritty has a visible delay (some times seconds) for that. Sure if you're using local tabs instead of remote tmux it may not matter that much.

Are you sure? I thought Alacritty's whole claim to fame was hat they're faster than everyone for steaming huge amounts of text.

Ack re: switching between tmux tabs though.

Have you tried Windows Terminal or Fluent? WT is C++ so should be good (and has a huge team of developers on GitHub who are paid to make it not suck - if you have a bunchmark to show it's slower than putty on a task, they'll probably want to fix it.

Here is how to reproduce it. Ssh to a system with tmux. Attach to tmux and "head -100000 maillog" or whatever big. Measure how long till it's finished. Try to switch to another tmux window and back while it's going.

Repeat the above in another terminal and compare.

Windows Terminal is actually pretty bad under tmux but ok-ish without. Can't switch off to another tmux window while it's going either so basically locked in. That's unusable.

The argument could be made that tmux is an issue. But since 100% of my ssh is under remote tmux and it's fast in putty/kitty I can only blame other terminals. Even without tmux kitty is 2x faster than windows terminal. And kitty doesn't slow down under tmux.

Ah fair enough. I don't use tmux so I've never noticed it - that said it's pretty common - you should copy the above to the Windows Terminal GitHub.

I used to like it a lot but I've found it consistently uses about 4% CPU no matter if I have any sessions open

Do you have the Xserver turned on by default? If so, turn it off.

MobaXterm's colored terminals have saved my bacon more than once. Great app.

And, it imports PuTTY sessions seamlessly. A wonderful upgrade.

Another consideration is that the free version is licensed for commercial use, which is why I freely recommend it at work and with a clear conscience.

WSL is the answer to anything where you go "I want ____ from <linux distro>". Install a decent terminal emulator, open it, type "bash" and win.

"Install a decent terminal emulator" - this is the big problem for any command line experience on windows. What do you suggest?

What are you missing? Windows Console has undergone a complete overhaul in the last few years. With QuickEdit, copy and paste via keyboard, and reflow during window resizing, the Windows Console is pretty nice.

Also this might be helpful for anyone wanting to follow along: https://devblogs.microsoft.com/commandline/

Has anyone tried the new official terminal? [0]/[1]

It looks rather interesting, if still in prerelease. (also, there's a trailer for it on YouTube - so weird [2])

0: https://github.com/microsoft/terminal

1: https://www.microsoft.com/en-us/p/windows-terminal-preview/9...

2: https://www.youtube.com/watch?v=8gw0rXPMMPE

I use Windows Terminal about 10 hours a day. Windows Terminal has got tabs, Unix cut and Paste, emoji support (surprisingly how common outputting emoji is in tests suites etc).

The 0.5 version is usable as a day to day terminal.

Alternative most stable Terminal is Fluent which I've used for a couple of years now.

I have small reviews of about 8 of the Windows terminal apps at: https://github.com/mikemaccana/powershell-profile

Hyper works pretty damn well. I was using ConEMU, but it is very slow on WSL2.

Fwiw, I work on rails + react apps with this setup: - Hyper as my terminal - WSL2. Then just my zsh/vim/tmux setup - Docker's tech preview for WSL2

This has been pretty reliable so far. I'm sure I'll hit a snag at some point, but it has been a relatively smooth experience.

I'm currently using wsltty, which is mintty for wsl. It's decent, but it's terrible on fast scrolling texts (i.e. `docker logs` for a container without a maximum log size configured)

Alacritty is great if you need actual performance.

Hyper is actually the one with the overall best experience, but it is electron and the usual issues apply.

Fwiw, mobaxterm can also be configured to use wsl.

Is Cmder/ConEmu good? I use it and kinda expected it to be listed.

My list wasn't supposed to be exhaustive in any way. I'm sorry if it sounded like that.

There are quite a few terminal emulators on windows and I just listed a few I thought noteable.

I didn't even mention the new one from Microsoft!

If you just want a sleek looking terminal for a few commands, cmder is definitely a valid choice. The occasionally broken copy paste is however dangerous, as it can remove characters from the middle of a line

I.e. `rm -rf /tmp/something && echo success` can get shortened to `rm -rf / && echo success`. It's admittedly very unlikely, as it usually just introduces errors such as `rm -rf /tm & echo success`.

The new one from Microsoft is getting there, is just needs an "Terminal here" on right click ;)

Also yes I noticed those issues in Cmder, I'm always looking for better choices that look nice to the eyes.

ConEmu works but honestly every time I look into Windows terminals I keep looking for another option, there's just so many issues with ConEmu.

Any good ones? I use Cmder (ConEmu based) a lot, but I do notice the issues from time to time.

Last I checked, SSH agent does not work under WSL. Even if that is fixed, though, the OpenSSH port will integrate much cleaner with Windows software; I set it up for use with Git and my IDE.

Unless you are stuck on an old version of Windows (or Win Server). I am using the Win port of OpenSSH for exactly this reason.

I ran into some problems with the agent last time I tried to use it, unfortunately. I would love to be able to use OpenSSH with the new Windows Terminal (well, eventually, the Windows Terminal has some annoying edge cases too, but is very promising, which is acceptable for something in a preview/beta state).

I guess I like having the prelogin GUI of PuTTY.

Saving credentials and much more with the GUI. Not to discount the value of all the cool utilities it comes with.

Just to be clear: there are advantages to OpenSSH too. The Windows port has an agent that runs as a service, you can configure using the standard .ssh/config mechanism that works with lots of FOSS software, and etc.

Holy jeez are there benefits to OpenSSH over PuTTY. I have to walk end users through setting up PuTTY. Since configuration uses the registry and there are no import/export configs I have to walk them through the UI, which is a mess (especially when they miss a step). For macOS users I just give them a command line to copy/paste. We've considered requiring WSL (a few gig install) just to get ssh in Windows because those users have had better experiences. Thankfully, it's now built in.

I tend to prefer to use git-bash or msys/mingw when I have to work on a Windows machine. Never became a fan of Powershell.

Despite the repository owner there's no dependency on Powershell. You get a normal ssh.exe binary.

Yep, you can just run the following command in PowerShell to enable ssh.

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

You can check if ssh is enabled with this command.

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

What's the best replacement for serial port connectivity on Windows? That PuTTY has it's own terminal settings always bothered me but I'm not sure what all is popular.

You can use the PuTTY cli command plink. For example:

  plink -serial COM1 -sercfg 9600,8,N,1,N
This will connect to serial port COM1 at 9600 baud, 8 databits, no parity bits, 1 stop bit and no flow control.

This is pretty nifty, thanks.

I usually recommend Termite to people


Tera term is what i tend to use. https://ttssh2.osdn.jp/

As a guy who uses serial enough to wonder the same thing, my solution was buying a cheap Linux machine. Serial is thousands of times simpler and more convenient to use on Linux.

Probably not too helpful if you’re dealing with poorly written windows serial software targeting embedded though.

What software are you using on linux to interface with serial? I always used screen but it seems there’s probably a better way?

Screen. Most of the time saved is not having to try to install whatever bizarre serial driver windows needs.

Also python if you need to programmatically connect and operate a device over serial. Quite easy.

Yep, screen is the easiest. Minicom often gets confused, or at least confuses me with its weird UI. With screen I just run "screen /dev/ttyUSB0 115200".

If you have WSL installed, I believe it's possible to use the standard Linux serial utilities with a USB-RS232 dongle.

If WSL was not an option, I personally would still use PuTTY

Not sure which serial utilities are standard though. I know many use Kermit, but I never found it very unixish.

I personally use 'screen'. It's a perfectly capable terminal for serial communications. It can even catch zmodem handshakes (it's in the manual).

I also use screen for this, though I find myself accidentally leaving sessions in the background and wondering why I’m missing characters in the output.

That said, does WSL really provide serial devices? That’s pretty awesome. I wonder if USB also is a thing in the WSL2 world.

Yes. This works even in WSL 1. I use GNU Screen in WSL on the regular to console into network switches.

yes, but the putty terminal is still better than cmd prompt.

The new Windows Terminal app is a massive improvement on the Windows Console, even while it's in beta.


I've found that between OpenSSH for Windows, Windows Terminal and WSL, I don't need PuTTY anymore. It's also nice to be able to use the same SSH keys on Windows and Linux instead of converting PuTTY keys to OpenSSH keys and vice versa.

Give the modern Windows Terminal preview a shot if you get a chance. (You'll need a recent Windows 10 1903, at least. It's in the Microsoft Store or you can install from GitHub.) The Windows Console team has been putting in a lot of work at making everything terminal better for everyone on Windows. (The Windows Terminal is powered by a new Linux-like PTY system that other terminals can use instead of screen-scraping ConHost like they used to. Which also means fewer "translation" layers between the old Console system and WSL PTYs.)

For me it is a keychain / bookmark system. Though I suppose I could use Keepass for that as well.

and kitty is better then putty.

Is there a guide somewhere on how to set this up as a Pageant replacement for git purposes?

The one nice thing about putty is the option to write output to logs.

I'm been using a pretty "obscure" fork named PuTTY CAC. The big feature added is that you can use it with a SmartCard including a Yubikey.

I know the most popular use of Yubikey + SSH is via OpenPGP but it involves a lot of things which are not working very well on Windows (namely GPG4Win, unstable gpg-connect-agent, etc.).

With this fork, you just need to install the official Yubikey mini driver to have it work with PuTTY CAC. (You will also need Yubikey Manager to configure your key).

Connect your Yubikey, launch PuTTY CAC, look in SSH>Certificate, enable Attempt cert auth, Set CAPI cert (choose your Yubikey cert).

It even works through Windows Remote Desktop.


When I used Windows, to use an OpenPGP smartcard with SSH I used this smartcard-enabled fork of pageant[0]. According to the page it should also support Yubikeys.

The process was: launch sc-pageant.exe, insert smartcard in reader, and ready to connect with any SSH client with agent support.

However it is not open source and you have to register your key if you don't want to get an annoying popup from time to time (iirc it was 1€, but you could also email the developer if you were using an OpenPGP card).

[0]: https://smartcard-auth.de/download-en.html

Wow, it's even better!

But the licensing is meh. 20 euros for one public key hardcoded to the license...

I haven't used Putty with a smartcard for a while (about a year); but I certainly didn't have to use a fork. The card was a FSF GnuPG card.

I don't know, I'm still have a vanilla PuTTY and I can't make it work with my Yubikey (PIV mode). There is no setting or anything related to SmartCard or PIV.

I'm no expert on this so I may have missed something.

Ah. It looks like you have to rely on gpg-agent; gpg-agent understands cards (and PIN-entry). PuTTY knows how to talk to gpg-agent (which simply replaces Pageant).

Except I remember ending up with multiple copies of gpg-agent running, for no obvious reason (which had to be killed before I could start a session - hmm. Maybe I remember finding this solution annoying). I think support for PIN-entry had its own annoyances.

[Note: I haven't tried this at all recently - I just did a quick search to try to refresh my crumbling memory]

Thanks, I've been looking into using the former method but that one seems way more reliable.

I've been using KiTTY for a while now which was forked from a slightly older version of PuTTY and seems to have far more features (and bugfixes)


Similarly, I usually install ExtraPutty, because I need xmodem support.

Still grateful for Simon Tatham's work. Did you know he also made a great collection of puzzles? https://www.chiark.greenend.org.uk/~sgtatham/puzzles/

I second the recommendation above for KiTTY which adds transparency, a feature I find very useful.

Be careful not to install by mistake the non-PuTTY based software mentioned below that attempted to hijack the already-in-use "KiTTY" name.

Saving settings/connections into files which can be sync'd is the killer feature of this fork.

Not to be confused with https://github.com/kovidgoyal/kitty, a GPU-accelerated terminal for MacOS and Linux.

When have you ever been cpu-bottlenecked on your SSH session?

Quite often if you have transparency enabled and have a lot of output.

And since stdout is blocking, it _can_ actually affect the performance of programs.

(and, anyway, it's about input latency)

When have you ever been GPU-bottlenecked on your SSH session?

What's the guarantee that bug/vulnerability fixes in PuTTY are also reflected in KiTTY? Also, how well-tested is the code going into it, considering it's (much?) less popular than PuTTY?

There's no guarantee of anything - though in the past KiTTY has been quicker to fix things than PuTTY.


Out of curiosity, why is the version number so low? It's been around forever.

Likely because no pressure is felt to put out a 1.0. The people that use it know what it is, and don't care that it's not 1.0 or above. It has constant, if low-velocity, development and bug-fixing going on[1] with 28 releases in over 20 years. PuTTY is a known quantity, I doubt anyone is trying to game the marketing to gain usage. For some people, that's a feature.

1: https://www.chiark.greenend.org.uk/~sgtatham/putty/changes.h...

Cool! Just by putting "0." in front of your version number, you're magically not liable anymore!

Why does that matter? It's a mature piece of software that has ongoing fixes.

That's exactly the point: a version number <1.0 is the universal signifier for "this isn't ready to be a daily-driver yet". If that doesn't apply to PuTTY, it's a (minor) failure of communication.

Or it is a feature because they don't care about your particular production support issues.

I was curious but couldn't find an answer, how long has that convention been around? Was it in place when PuTTY started in the late 90s?

I would suggest that " version number <1.0 is the universal signifier" is the failure of assumption.

Many software don't abide by that.

They didn't say it mattered, they said they were curious.

I highly recommend the Bitvise SSH Client[0] for anyone looking for more features and (I believe) a better interface.

[0] https://www.bitvise.com/ssh-client

I have several PuTTY requests for serial port:

- A pulldown to allow you to select a serial port, as in TeraTERM. I frequently can not recommend PuTTY to non-power users because it lacks this one feature. And yes, I know it's hard, but it's not that hard.

- Integrated Zmodem support. I use Zmodem for firmware updates for some embedded applications. It works great over TeraTERM.

- Sixel support (as in xterm), so that embedded applications can print graphs through the console serial port.

I used to use Putty for all my SSH on windows, until I discovered mobaXterm; it's Fk amazing. not only an SSH client, but you can also browse files at destination, and copy files there from same window; it also has xserver built in to run GUI on destination machine

SuperPutty is a nice Addition to get tabs and a session manager with folders:


I was going to mention it, but I see someone else got there first :)

I've been using SuperPutty for several years now - tabbed UI is really useful, as is the folder organisation of lots of connections.

Haven't tried SuperPutty, but I find that Putty + ConEmu is good for a tabbed UI.

After using PuTTY for many years, and then Bitvise SSH client for some more, I shifted to Termius. The thing that finally made me switch from both the earlier really good products was its ability to work across Windows/Mac and Android, and syncing hosts/credentials across the instances. It has a free version which provides SSH and port forwarding and a paid one with more features.


That looks very nice. I appreciate the link. Are you (or is anyone) aware of open source alternatives?

I really like how it shows the terminal, but kind of separate from the phone UI. A lot try to show you the terminal as the phone UI and it does not work well.

Interesting! I had no idea Terminus has a desktop version. It's really wonderful on mobile devices... has saved my ass a couple of times.

Already available on Chocolatey:

    cinst putty
FYI, kitty, putty fork has some better options

    cinst kitty

https://chocolatey.org/packages/putty https://chocolatey.org/packages/kitty

No mention of Cygwin? You get all most used Linux terminal applications ported to Windows.

My advice for people (who want to use SSH on Windows) is to install Git which ships with Git Bash and SSH.

In my experience WSL is much simpler and more flexible than that. Bash, git, ssh, tmux, and any other Linux utilities you want.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact