I don't work for Microsoft, but my guess would be in order to securely access a shell. (Remotely, but srsh doesn't roll off the tongue)
Honestly though, I'm more interested in an SSH server for Windows. I haven't tried for many years, but last time I did, getting something more secure than telnet was a massive pain.
Yeah. My memory is fuzzy... I think I got to that step, but I couldn't figure out how to have it start with the machine without a bunch of hoops and caveats. But that was many years ago and I could be mixing it up with something else.
It's very simple these days - there's a script, `ssh-host-config`, which asks a number of questions (like whether you want user isolation for the service or not) and installs the service as native Windows service (using cygrunsrv).
Why? If you're on Windows and managing Windows, you just use WinRM for a PowerShell session. Even then, though, most of the tools support RPC so your tools already communicate with remote systems.
"No SSH" doesn't mean "no remote management capability." SSH hasn't been available because you don't need it unless you need to manage a Linux system or a network device. The only reason it's being introduced now is because people like to use git, and git fucking sucks if you're not in a POSIX environment.
At the time I wanted to manage my only Windows box remotely, and from mobile devices that had nothing but ssh and vnc. (SSH being the clear winner there.)
Every router for the past 10 years has shipped with an SSH client. If you wanted to login to it securely from a Windows box, you had to download Putty first, or enable some janky self-signed web interface.
If one's necessities are not limited to an ssh client, Cygwin has been available for years, is free software, and has a very good integration with Windows (you have read/write access to the whole filesystem, for example, something presently cannot be done with win10 subsystem for Linux)
I think this is because WSL uses NTFS Alternate data streams to store linux file attributes, and they don't survive when a file is copied to a non-NTFS file system.
According to the MSYS2 devs, MSYS2 is slightly slower than Cygwin, and it has a significantly different project objective, leading to much reduced command-line environment:
MSYS2 provies a minimal shell required to run autotools and other build systems which get the source for software from the Internet from different repositories, configure them and build them. The shell and core tools exist mainly to allow porting Unix programs to run natively on Windows (i.e. without requiring a POSIX emulation layer). MSYS2 doesn't try to duplicate Cygwin's efforts more than necessary, so the number of provided POSIX-emulated software is very small.
(I recommend Cygwin, I've been using it for 15 years or so, and have access to almost everything I've ever needed from Linux command line. The slowest thing is forking; emulating it in Win32 executables is not easy on NT kernel. MSYS2 doesn't fix that.
Also, apt-cyg is pretty decent for installing packages on Cygwin.)
Why "according to the MSYS2 devs" from 2014 though? Have you not tried MSYS2 yourself? I tried Cygwin a handful of years ago and it was worlds slower than MSYS, which I decided to use instead. I switched to MSYS2 a couple years ago or so, and it which hasn't felt any slower than MSYS. Cygwin took forever just to traverse a directory hierarchy. Has it has gotten an enormous speed boost since?
I briefly had a look at MSYS2 several years ago but it was all oriented around Win32 compilation. For example, I wanted an ffmpeg build, but I needed it to understand Cygwin paths, while the MSYS2 instructions are for a Win32 executable rather than Cygwin executable.
Directory trees are indeed another thing that are not enormously fast in Cygwin, but how often do you do recursive listings of directory trees? I don't even do that often on Linux because it's not fast there either.
Specific example: `find` has several tricks up its sleeve that it thinks are fast (e.g. looking at link counts on directories to test for leaf directories), but emulating the APIs that it uses for these tricks are part of what makes it slow on Cygwin (Cygwin will need to count the directories to emulate the link count, which makes it O(n^2) rather than O(n)). You can use -noleaf to turn this off. But `find` does other stats that make it slow.
I use a script that wraps `cmd /c dir /b /s /a` (IIRC) and cygpath for the few scripts I have that do much recursive processing, but it's very rarely a big factor. My biggest directories are on my NAS which is Linux.
My single biggest performance problem - as in, almost debilitating on Cygwin - are poorly written Emacs plugins that do filesystem access in the status line update callback (e.g., Projectile). But they're easily monkeypatched when they crop up.
> but how often do you do recursive listings of directory trees
I mean, it affected enough scripts I was running that I noticed the slowdown plainly as daylight when I started using Cygwin. I'm surprised you don't notice it!
Ever since Windows 10 was released, you could download and install the OpenSSH client. It's great that Microsoft has actually built this in now (even if it is beta).
you miss the point that the right ssh keys will be used by default. currently malware would have to search for and use the keys by itself.
now the servers will be on a gold platter, ready to be served
Ultimately this probably helps increase the overall internet security. Although in recent years it was available from a TLS secured source [0], the putty.org site (which might or might not be operated by the maintainers) is still not https secured. Given that probably tens or hundreds of thousands downloaded it from there (imagine, getting an SSH client from an unknown source!) I'm surprised not more happened.
Other than that, thanks for the great work maintaining this project which helped me and others a great deal throughout my career. Countless times have I been stranded on a Windows server and quickly needed an SSH client.
Putty binaries are all signed, which is what you should be looking at when authenticating a release. Whether you fetch them over SSL is of little importance.
You are, of course, absolutely correct. And I hope this is what internal package maintainers in large companies and individuals using putty as their standard SSH client do. However, for many of us putty is a backup when they are not on their linux/osx machine and just quickly need an SSH client to do something. The workflow there is google->putty->first result->download->execute. You absolutely shouldn't, but we also shouldn't drink and sleep 8h a night :)
The signature is automatically verified by the system — when you open the installer, it either shows "unknown developer" or "PuTTY team" in the UAC dialog. Which is easy to verify.
Do you know the version of PuTTY you have installed without checking?
The level of assurance you get with a signing key downloaded over HTTP and one downloaded over HTTPS is roughly equivalent. Sure, HTTPS gives you a degree of protection from MitM attacks, but it won't stop attackers (whether criminals or militaries) from hacking the web server and changing both the software and the signing keys---after all, if one is possible, so is the other.
Clearly we have different concepts of "roughly equivalent" :) One means everyone on your network can trivially serve you trojanized binaries, the other doesn't.
I think hacking a web server is a lot easier than hacking a network connection. Hacking web servers is well within the capabilities of your average vandal, while hacking network links in order to perform a MitM attack requires significant resources (e.g., those of a large criminal syndicate or an intelligence service, but I repeat myself).
Edited to add: ARP-spoofing the right LAN requires spearphishing and APT, which I think also require significant resources.
Sure, against a complete stranger the web server might be more vulnerable, but sometimes the attackers are already in our LANs :)
I was thinking more about employees, or students at universities, or such. I believe I've seen tools that ARP-spoof and then automatically detect downloads of ELF or PE files and trojanize them, all without requiring almost any knowledge from the attacker. I don't know if any of these tools detect Putty and fix its signature too, but it wouldn't be hard to do.
It's not only about this, you needed to install more and more things every year in windows for it to work. You needed to install Cygwin, a proper terminal (cmd.exe isn't exactly usable), python libraries, Putty, now Docker... Not to mention that since developers are only using Linux and Mac, you will have libraries which does not work on windows (because nobody even tried).
Also, it's not like you don't need to install iTerm, zsh, docker, python libraries etc on mac. It's not like it comes with them by default. Your argument is kind of moot.
Depends, for the occasional deep into CLI world to run a script, is quite ok.
Granted, the defaults regarding mouse copy-paste and window size were only improved on Windows 10.
> Not to mention that since developers are only using Linux and Mac, you will have libraries which does not work on windows (because nobody even tried).
Not all developers are pure UNIX devs doing POSIXy stuff.
I happen to like Powershell's idea, as it is the closest to the REPL experience on Xerox PARC inspired systems, we get to have on mainstream environments, by using objects and having access to the full set OS APIs on the scripting prompt.
However I do think it could have been made less verbose and dislike the ps1 extension, as the 1 (one) does not make sense.
Verbosity is something I tend to reserve for scripts (which should not rely on certain aliases existing). In the shell code I write approaches golfing idioms (perhaps inspired by the fact that I learned PowerShell by golfing in it). I think they've done a good job of having the verbose things readable and understandable, while also being able to shorten parameters as long as they remain unambiguous (and offering short aliases for cmdlets that are used all the time).
I heard they wanted to use the ps extension but that has long been used for PostScript, and though very few Windows users use PostScript files directly they still didn't want to step on those toes. Particularly, they were very cautious about using anything that looked like an existing file extension because they didn't want it to be an easy vector for malware to confuse users. ps1 doesn't step on any toes, at least, and looks weird enough to an average computer user that they might hesitate to double click one.
You'd better believe that if Windows had an acceptable terminal 10 years ago I would have never purchased my first MacBook.
The pleasant interaction with other *nix systems was and is a primary driver for my choice of OS X.
PuTTy sucks. Every other terminal I have tried on Windows sucks. Getting terminal-based software to work on Windows sucks. I stopped trying years ago because a terminal on OS X doesn't suck. It might not be a perfect 10, but I'm happy with it.
I'm also more interested in Windows more and more as time passes.
Losing as the most popular OS has made Microsoft start doing some of the right things.
Never been a problem for me. What are your complaints?
I barely notice the difference, but if I had to choose I'd take putty over Terminal.app, which has default keyboard-shortcuts that clash with Bash. (I believe it was Alt-b, Alt-d, or maybe Alt-f. I forget exactly.)
It's one of those things that's hard to explain. If you're used to a proper terminal emulator, you'll know immediately. PuTTy has terrible configuration and awkward default settings, and gives the impression of being pretty flimsy. Remove the network cable while in an SSH session, and PuTTy will immediately disconnect you. Try doing a port forward, and you'll need to dig around instead of just typing it into a terminal. Also aesthetically, PuTTy has nothing on Terminal.app or iTerm2 etc.
> Remove the network cable while in an SSH session, and PuTTy will immediately disconnect you.
But it's not a problem with PuTTY, it's a problem with Windows networking
subsystem. Once you remove cable, the whole interface immediately goes down,
IP address gets deconfigured, and all open sockets using the address get
closed. (I was bitten in the ass by this when I had several Windows Server
machines under my care.)
You'll get exactly the same with any other long running TCP connection.
But it still stands that using PuTTY sucks. I'll gladly give you that many of the reasons it gives a bad experience are because of various Windows characteristics.
This is so true. Another attemp to explain might be: The cmd.exe and PuTTy always feel like foreign bodies in the windows world, they don't integrate, they are an rough try to fill the gap between the "old" command line world and the "new" windows world (in the win95 language). In contrast, already the OS X terminal feels like a first class citizen in the environment.
It is worth to emphasize what has been said before here: Since Windows popularity is decending, they start to catch up with that attitude. Nowadays, for instance, you can open the terminal from every folder in explorer.exe -- this is exactly this kind of integration Windows missed for 20 years. Once they kick out cmd.exe in favour of something like Console2 (https://www.hanselman.com/blog/Console2ABetterWindowsCommand...) and update the toolchain even more than they did with PowerShell (actually integrating GNU/bash was a major step), developers will come back.
Have you used Windows recently? The Console team has made significant improvements in the last year, with more on the way. This article has a good rundown of some.
If it didn't come with so much unrelated crap that could be installed independently I'd largely agree. But it takes this "... and the kitchen sink..." approach that detracts from it quite a lot. Want to install PostgreSQL running in Cygwin? Look no farther than your terminal software to do the work for you... blech.
I say all of this having been a paying MobaXterm customer in the past.
These days I use ConEmu, WSL, and Bitvise (for those rare occasions I want to easily tunnel to the Windows side).
Well, of course, and tmux is another thing that makes PuTTY janky. I'd rather not dumb down my tmux layout to something that PuTTY's terminal emulator can understand, when Git Bash running its bundled ssh handles it just fine.
nix user going on 25 years here. I use WinSCP and PuTTY to all the time and they work just fine.
> Remove the network cable while in an SSH session...
This argument seems a bit contrived. Is this honestly something you're concerned with on a daily basis? I doubt it.
> Try doing a port forward, and you'll need to dig around instead of just typing it into a terminal.
No, you don't just type "it" into a terminal. First, you have to lookup the command syntax if you haven't used it in a while. Then you have to type it in correctly and if your syntax is off by even one character, things don't work.
> Also aesthetically, PuTTy has nothing on Terminal.app or iTerm2 etc.
Aesthetics are nice but do you even have a tool like WinSCP? It graphically displays the remote filesystem over your SSH connection and then lets you open a terminal to the path you were looking at. I don't even have to type my password when I open a new terminal from WinSCP.
It's all in the registry. I forget where, but search for the hostname or ip of one of your configs in regedit (CAVEAT EMPTOR!!!!) and export the whole folder with all the configs in. You'll get a .reg file (or whatever it is) that you can double click on any other windows machine and your settings will get ported over. Paths to key files are preserved verbatim.
Again CAVEAT EMPTOR (as with anything to do with regedit).
All of the sessions are stored in the registry, which you can dump to a text file easily enough. A couple of minutes with awk or something and you'd have your ssh_config file.
As a counterpoint, I LOVE the whole ~/.ssh directory. It keeps everything in one place, is text-editable, is cross-platform between Mac and Linux, and easily transferred to new machines, or restored to existing ones after a fresh reinstall.
With Putty, if I want to change, say, the size of the terminal opened on connections, I'd have to update every Putty session individually. Been there; done that. Ridiculous. That should be a function of the terminal you run SSH under, not the SSH session itself.
The config all lives in HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY. You can export it all via regedit or:
reg export HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY PuttyConnections.reg
It is definitely a lot messier than working with ssh_config.
There are versions of PuTTY that store the config in files, usually with names like Porta-PuTTY. I use the hacked up Xming Portable Putty because I do a lot of X forwarding and the base PuTTY used to have some stability issues with it. They're probably fixed now, but I still use the hacked up PuTTY because my configs are in the text files instead of the Registry and regular PuTTY doesn't know about them.
For one, it's plainly impossible to use an existing OpenSSH private key with PuTTY. You can convert PuTTY keys to the OpenSSH format with putty-keygen (or what it's called), but not the other way around. This antifeature alone cost me two hours recently.
Text rendering is bad (and is generally unpleasant to look at), it forces UI interactions, it's not a terminal so I can't do anything locally, no tabs, IIRC text doesn't reflow on window resize.
It's generally difficult and awkward to work with and unpleasant to look at.
I quite like PuTTy as well. I have only had problems when using gdb or jdb - it doesn't translate arrows properly so history or editing current command doesn't work and some apostrophes or ticks or whatever get translated to accented characters. I always blamed the shitshow of unix tty for that. Is there an ssh client/terminal that doesn't have these problems?
PuTTY on Windows does all of those things perfectly reasonably for me (I just checked) - it might be as easy as making sure your PuTTY environment defaults to UTF-8 instead of ISO-8859-1 or various codepages.
To add to the other problems that people have mentioned, text selection is a little strange and putty doesn't pass along keys like "End" for some reason, which is useful in tools like less.
If you use git on Windows with PuTTY/plink it's also significantly slower than OpenSSH. I saw clones of a large repository go from 60 KB/s to 600 KB/s after switching from PuTTY to OpenSSH.
Been a while since I've used a Mac, but I seem to remember that at one time, Terminal.app lacked tabs, but they were added in a later version of the OS.
With PuTTy you have to open a separate application and configure connection in a completely different manner. Compared to Linux/OSX which enables a "work in a terminal" model, where "ssh", "scp", etc. are commands that can be used from within an existing terminal. It feels like a completely separate tool from the terminal instead of integrated with the terminal. I think this is a similar argument that users of text-based-editors (vim, emacs) have over using GUI-based editors.
I'm a Linux guy myself, but whenever I see colleagues use a terminal on Mac OS or Windows, the amount of little annoyances on Windows really sticks out. It's nothing major (hard to configure colour schemes, awkward copy/paste operations, PuTTY), but it compounds to an unpleasant experience.
Also lack of fullscreen support (pre-windows 10), no history and it seems that command line was just a joke for MS for the longest time.
I think it's the explosion of open source and the corresponding command line tools that they started investing some time and effort to the command line.
Honestly, I think the biggest driver is the type of developers you find now. With Open-Source being such a large area for almost every CS student and budding developer - the normal work environment is becoming very Linux-heavy.
A natural result is now the Devs working at Microsoft ALSO wish they could use the command line for everything in Windows. Thus Powershell, and things like AZ CLI becoming much better.
Check out MobaXterm ( https://mobaxterm.mobatek.net/ ), it's the best terminal for windows I ever tried. Have a really handy list for remote connections, an X server, sftp browser for connected servers, Linux Subsystem fro Windows support, and a lot of other useful features.
(I am not connected in any way to the developers)
Of course it is, but even with all advances in terms of UI in Linux distros, many people still prefer the MacOS/Windows GUI and ecosystems, or just like Apple hardware more.
Macs historically have always been a decent compromise for having decent GUI/Linux-like terminal/nice hardware.
It's kind of a different environment now, with PC manufacturers coming up with well designed laptops and Windows offering more Linux integration.
Personally the most annoying thing is the little UI inconsistencies like clipboard handling. In a mac it is always Command-C/Command-V - in X sometimes it is Ctrl+C/Ctrl+V, Ctrl+Ins/Shit+Ins, mouse-select/mouse-middle-click and so on. Many applications have incompatible clipboards.
The reason for the confusion is that there are two separate clipboards: one for Ctrl-C/Ctrl-V and one for mouse-select/mouse-middle-click. To use the first clipboard on terminal emulators you need to use Ctrl-Shift-C/Ctrl-Shift-V instead because the Ctrl-* shortcuts have legacy meanings in the terminal. I don't remember ever needing to use Insert for copy pasting (although you can use it if you want).
I don't know what examples you had in mind when you mentioned applications having incompatible keyboards. The only one I know that does that is Vim (which by default uses the internal clipboard when you use its cut, copy and paste commands) but Vim is definitely not your average Linux application...
Because the Linux desktop sucks. (that's the word of the day)
If I had a Linux laptop, an extraordinary amount of my time would be spent trying to make it work. Wireless breaks, sound breaks, upgrades break everything. I would have to spend a serious amount of time and research finding a laptop that had good Linux support... regardless I would still probably have to spend hours trying to get the sound or the wireless or sleep or some feature or another to work properly.
OS X just gets out of the way. I have never had to put any work into making the graphics card work or making sound work or making the network work or fixing boot... you get the picture.
If I'm using Linux on a laptop to do any sort of work, a sizable portion of the work becomes keeping Linux working on the laptop and I don't want that.
Linux on unsupported laptops (which is most of them) sucks big time, but not linux desktop itself. It works great on standard desktop computers (towers)
you should make that distinction, because otherwise you'll just start a flame war.
I tend to disagree. Yes it works but I find it unpleasent to use. None of the available desktops is pleasant to use, especially fonts and symbols often look much worse than Windows or MacOS. As much as I like Linux on servers, I don't see any reason to use it with a graphic interface.
Almost every time I hear this complaint it was years ago and with one distro. There is so much more than Ubuntu out there people (Ubuntu sucks IMHO).
One thing I've learned is distrohopping is a must if your hardware is an edge case... that said, since moving to Manjaro, I haven't had to use anything else.
~10 months ago. Looking at screenshots on their website I still don't like it. But maybe that's just because I grew up with Windows (although I do like how macOS looks). Think it's very much a taste thing. Most of what I do is browser based (incl. IDE) anyway so the OS doesn't really matter anymore.
I've recently gotten a new laptop, and everything is supported out of the box in Debian. It has a 2160x1440 screen, and the hidpi support with gnome on Wayland is outstanding. I would say that the fonts and symbols look on par with the new MacBook pro (I was using my new computer side by side with a new model MacBook pro).
The Linux desktop has come a long way, even in just the last year or two. I know everyone always says that, so take it with a grain of salt, but I have never been happier with the state of the Linux desktop.
Interesting. Personally, I find Windows quite unpleasant to use, even basic window management is a hassle (just an example: you have to target very small hit boxes for simple things like resizing and moving windows around, and default keyboard shortcuts are not configurable). As to fonts, many if not most custom fonts you see more and more on websites look quite odd, and sometimes simply bad with Windows' font hinting (I do agree the built-in fonts work nicely, but so do fonts on certain Linux systems as well, and have done so for at least a decade since Canonical merged certain patches to their Ubuntu's version of freetype).
Might it be that we tend to like what we're used to? When I jumped from WinXP to a Gnome2-desktop, I tried to make it a bit more like WinXP, even though these days I would probably want nothing of how WinXP desktop is laid about.
I'm pretty sure that I've spent less time maintaining my laptop than my colleagues who are on OS X. That obviously isn't the case for every laptop, but I don't think that your statements generalize well either.
...meh, just limit yourself to the tops of the lines like Thinkpad, XPSs etc., make sure any networking components are branded Intel, pick Intel CPUs' integrated graphics or not-low-end Nvidia, and everything will just work fine out of the box with an LTS Ubuntu or latest Fedora (basically pick whatever's closest to what you use on your servers).
But yeah, if you buy anything that's not part of the "top of the line developer notebook" category, specifically the Intel not AMD ones, then almost nothing will work out of the box :)
Linux Mint worked perfectly on my T420, and I expect it to work perfectly on the T440 I'm picking up today to replace it.
Sure, not the very newest hardware, but it's not like laptops have gotten significantly more powerful for anything that actually matters, for the last couple of years.
Oh, they did more powerful, just in departments you don't pay attention to.
The biggie is the GPU. T420 has no oomph to run an external 4K display (at more than 24 Hz, i.e. in usable mode). Broadwell and newer do have the capability to run 2 of them.
The CPUs got less power-hungry. You can do the same work with less juice, so your battery lasts longer.
The SSDs with the new interfaces got much faster. There is simply no comparison between M.2 nvme drive and SATA3 SSD.
Sadly, wifi took a step back, with almost universal unavailability of anything better than 2x2 MIMO 802.11ac. In the past, MIMO 3x3 used to be available (Broadcom, but the option was there).
So yes, modern laptop is significantly different experience than few years old one, despite the CPU having the same GHz.
My point is that they're not noticeably faster for the things most people use their computers for. They still run browsers, Spotify, email, word processors and all of that just fine and last "long enough" on a charge.
The improvements have been incredibly marginal for most people.
The difference is noticable, the modern laptops are subjectively perceived by users as faster, even if they have slower CPUs.
Also, they do not have a problem with Electron apps. for most people, they are just apps like anythig else, and do not perceive any performance problems with them.
The difference between NVME SSD and SATA SSD is like between classic HDD and SATA SSD. It has to; NVME can push 4GBps, SATA3 only 600MBps.
Even the Apple 2015 M.2 drives, which are "only" AHCI, but with much deeper queue (i.e. nonstandard), can do 1.something GBps and the difference compared to standard SATA SSD is noticable by normal users.
Electron apps are something normal people use and some of them compain about the speed/lag/memory usage. Usually those with older computers, who think nothing changed in the last years ;).
But for most people, that speed difference is purely academic, and doesn't actually benefit them. Sure, if you're compiling stuff or otherwise moving around a lot of data, it matters. But for most people, it's just some numbers on a spec sheet.
I put Ubuntu (Mate) on an old Macbook of mine because it was absolutely crawling with MacOs on it. The only driver it needed was a Wifi driver. Everything else worked fine out of the box.
Also, I run an Intel Nuc (laptop hardware, essentially) with Ubuntu as a main development machine. 0 problems. 0% in the way.
OSX is great, don't get me wrong. But, it's been years since I've ran into driver problems with desktop Linux.
"Sucks" is subjective; you're allowed to think that.
In years past you may have spent hours getting wireless or sound working. These days, if you buy decent, mainstream hardware it just works. Ubuntu does a great job of getting out of the way.
I'm a Fedora guy, myself, but find myself recommending Xubuntu to more and more people for casual computing because 1) it really does just work, and 2) Xfce is lightweight and lets you use your CPU for doing real work vs. holding up a bloated windows manager.
> If I had a Linux laptop, an extraordinary amount of my time would be spent trying to make it work. Wireless breaks, sound breaks, upgrades break everything.
At our office, the macOS laptops tend to have the most problems with sound & graphics; the Linux desktops, OTOH, Just Work™. I find that pretty funny, actually, because I would have expected it to be the other way around.
The most problems I ever had with Wifi was a mac machine (rMBP13). In the office, usually during RDP sessions, it often lost the connection and couldn't reconnect until reboot.
I've never had anything similar happen with a PC (we use Thinkpads), whether running Linux or Windows.
Just to be clear, if a Macbook works better for you or if you just prefer macOS, by all means, go ahead. Macbooks, from what I hear, must be superb machines, and while I prefer Linux with a Mate or XFCE desktop, I have used a Mac for a while and there are things I do miss. And a lot of software is available for Windows and Mac only; given the choice between Windows and macOS, I wouldn't have to think long.
I hear that argument frequently. On macOS (or even Windows) things just work(tm), while on Linux (or some BSD), there is always something that does not work correctly.
I guess I must be quite lucky. A long time ago, I positively enjoyed spending an entire weekend getting a sound card to work or something. To be honest, these days I consider myself too old for that stuff. I, too, like it when things just work. But really, Linux as a desktop system has come a long way, and for the past couple of years, things have pretty much just worked(tm) for me.
Picking hardware that is supported by Linux takes a little care, so does picking a distro[1],
especially with laptops. But I prefer to do a little research before buying a laptop anyway, because I am usually on a budget.
[1] In my experience, the more recent the hardware, the more unlikely Debian is to work. OpenSuse has worked well for me, though.
If you want to get some work done, and not just fiddle around with getting wifi, sleep, graphics working, then installing Linux is not an option.
Linux could be the new Mac os X if all the Linux distributions chose to focus on one platform and way to do things, but nobody in the Linux world is going to do this.
Also, Mac has unified hardware, so they pretty much can optimize so that stuff Just Works.
Thanks for the tip. Might consider that in the future. Probably not though, as mac OS is such a better OS. But the hacker in me still kinda likes the idea of Linux, used to run it as my main OS for long time before Mac Os X.
I haven't had any trouble with Linux desktop on mainstream laptops for the past 15 or so years. The days of hand tweaking your Xfree86 configuration files and refresh rates are gone.
Of course there are things that are not working so nicely, and are not meant to. For instance, running RHEL (which is a server OS) on a laptop (which typically has new optimized hardware which is not meant to be server) and then expecting graphics and WiFi work on a kernel that is much older than your hardware and thus has no drivers.
Perhaps you might expect some trouble also when running Windows Server 2012 on a new laptop? I don't know, I haven't tried, but wouldn't be surprised.
That resolves that issue, but has its own downsides.
There’s a lot of things I like about macOS [eg: better power management], but the main reason I switched was because it was a Unix I could put Photoshop and InDesign onto.
Well, if you need certain applications that are not available on Linux, all the hardware support in the world does not help you.
That argument trumps pretty much everything else. If my boss came into my office today and told me to switch all of our desktop computers to Linux, as much as I would enjoy that, I would have to tell him that it cannot be done, because we use a lot of software that just is not available for Linux. (And a fair amount of it is not even available for macOS.)
Because *nix kernels provide terminal devices, making a new terminal program is relatively easy on OS X compared to Windows where a lot of the free things have to be written in userspace.
I try it every few years, but always seem to end up going back to plain Terminal.app. The main issue is speed and memory usage— iTerm2 seems to be much slower and laggier, especially on a busy laptop (running VMs).
The big problem is the filesystem is still vastly different.
The web, Unix, Linux, OSX, pretty much everything other than Microsoft uses properly namespace driven forward-slash separated paths with no drives and case sensitivity.
That you can't fix, merely abstract it away. I am tired of mapping between the two.
Powershell doesn't but not everything is powershell. Win32 underneath pokes its head out occasionally. And I don't want to use powershell. It's horrid in so many ways.
I'm a Unix user since about '93 for ref as well. I am poisoned with forward slashes everywhere :)
That makes sense: I don't do anything on Windows command line that isn't powershell. Give it a chance: install PSCX, openssh, and conemu, configure your emacs keybindings, steal my profile (https://github.com/mikemaccana/powershell-profile) and learn, at minimum, 'where', 'get-member' and 'select' before you make your mind up on anything.
MS-DOS (and Windows) have supported forward slashes as path separators since PC-DOS 2.0, despite defaulting to backslash. Anywhere where the forward slash isn't supported is a bug either in Windows or (more likely) in the app that won't accept them.
Yeah, that's a shortcoming with cmd.exe. At least PowerShell will switch slashes to whichever is default for the platform, but I doubt that supporting fore-slash tab completion in cmd.exe would be able to crawl out of the -100pt hole.
I've recently discovered cmder and it actually makes Windoze bearable to use. Of course I would never give up Linux if it were my own choice, buy work is work. So they've got an SSH client at last, but still no decent terminal, I suppose.
I think the question is not whether someone would buy a MacBook because it has these tools built in but rather, why would someone buy Windoze given that it doesn't have these tools built in?
I really like the Windows 10 OpenSUSE terminal. Just install it from the Windows Store. OR you could install the Ubuntu Terminal. Either way they have replaced cmder for me.
One thing you need to be careful with regarding WSL is that it still doesn't correctly handle umask[0].
There are some workarounds if you use particular terminals (for instance you can't use Mobaxterm as it forces 777 regardless) but it's not exactly 'it just works' yet.
Can't agree more. This was also what made me to buy my first Mac: the fact I have a natively supported terminal (that's blazingly fast), with ssh client (and server too, whenever I need it), with shell that's not some kind of ugly hack (geez, CygWin nightmares) and BSD userland tools at my fingertips is the quality no computer/OS maker can deliver up till today, so despite being displeased with some recent design choices (I love my 'old school' Mac keyboard, I love my MagSafe adapter, I love my 2015 MBPR ports and form factor, thank you) I keep buying Macs.
> Losing as the most popular OS has made Microsoft start doing some of the right things.
While Microsoft has started doing good things which I can agree on, when did they lose OS market share to the point of not being number one? If we're talking about Apple hardware outselling any one vendor, that's true, but there's volume. Also, one of the first things I did after getting my MacBook Pro (and others I know who don't want to leverage VMs/Parallels. I like Windows and OSX being separate from a context point of view) was dual boot Windows.
Android is first by a large margin. iOS almost outnumbers Windows as well.
Microsoft post iPhone needs to prove that it's worth using a desktop at all, not that they deserve to have the highest share of desktop users. Stopping the bleeding inflicted by Macs, which sync so well with iOS, is part of that.
Desktops and laptops have lost much ground to phones and tablets. There was a time where comparing a desktop to a phone was silly, that time has passed.
The number of people using Windows to do their "computer things" has gone down dramatically. Even if they have a Windows computer, much of the time spent doing computer things has moved to Android and iOS.
This. 10 times this. I moved to MacOS 10.3 in 2004 because the things I did professionally were almost all in Linux (which I had been running in the data center literally since 1994), and MacOS felt and acted like Linux with a nice GUI. I lived most of my life in Terminal and rarely noticed the difference between when I was ssh'd in to a server or working locally. Awesome stuff.
I doubt Windows 10's inclusion of ssh alone addresses this use case; for that you'd want a full cygwin or something. I don't know anymore - I don't use Windows for any purpose other than games on dedicated gaming computers these days. Despite Apple going backwards with each successive macOS release (probably since 10.8) it's still a much more usable OS for the majority of the things I do than Windows 10. I do like Windows 10 better than Vista and 7, though, on my current gaming computer.
Maybe not, but having used both Putty and ssh (Linux) for many years, I'm so happy I don't have to run Putty again. I stopped using it at the end of 2008 when I reformatted my work laptop to Ubuntu. Not only Putty is a worse terminal than gnome-terminal but the key management was insane.
I can. Putty sucks. For a decent key management you need cmder + keypass, and i doubt people want to waste the time i did to experiment until they arrive to such conclusion.
I have a Win10 XPS13 after 15 years of OSX. And Putty is bad. Not the ssh, but the tool support. And it's not only SSH but the missing shell. I currently use Ubuntu on Win10 just to use a proper shell with ssh.
And of course my next computer will be a MacBook again.
Normally you have a fully-fledged programming language that sometimes runs
a command being SSH client, and universal one at that (you can pipe data
through it, you can pipe data out of it, you can run remote commands
non-interactively with it, you can jump through SSH on other hosts with it,
you can set up TCP tunnels in ad-hoc manner without going through the
configuration, and obviously you can run an interactive shell). Plus you get
scp for file transfer out of the box, and lftp (which understands sftp
protocol) and rsync after installing some barely related software, all of them
still able to jump through other hosts.
Now compare it to the glorious ability to open a window with remote shell (and
only direct one, no jumping through a bastion host), and maybe a TCP tunnel
with some clicking through every single time (you can't recall the history of
commands, because there was no command in the first place; the best you can do is
to save the tunnel configuration permanently). And maybe file transfer if you
remembered to download PuTTY's scp client.
You can do all that stuff using Cygwin at least as far back as 2005, because I was running Unix dump and rsync through ssh from a Windows backup server back then. Cygwin eventually adapted PuTTY as its terminal emulator too, in the form of MinTTY.
You can do SSH proxying with PuTTY, too. It's just called something different:
If you think PuTTY is even half the environment bash+ssh is, you probably won't understand what the people buying Macbooks, or using Linux directly on Whatever{books,tops,pads}™ are getting from their choice.
Not trying to be condescending, but it seems to need highlighting that just having SSH access isn't enough.
Not to mention that these other environments have offered other benefits [especially] to developers looking for a programming environment that works for them. The VS.Net IDE-play-button approach to automating testing and deployment doesn't scale for everybody.
Technically the "you" in your statement is not the same person/people as "the people buying Macbooks or using Linux directly". But I see what you mean. Hopefully you also see what I mean - that nobody in their right minds would think that PuTTY is trying to be bash+ssh. PuTTY is the ssh part of that combination, and there are plenty of options to cover for the bash part too.
PS: From the fact that you refer to Visual Studio as "VS.Net", I take it that you haven't been in Microsoftland for a while. No serious developer uses these "play-buttons" to do their automated testing and/or deployment.
> I take it that you haven't been in Microsoftland for a while
It's been about a decade since I moved to Linux. Just skimming the latest VS docs though, the structure of unit testing within VS pretty identical to how it was. The feedback is a little more inline and I guess the extensions are a fairly big deal... But that sort of lends to my point that the IDE is still pushing itself down your throat for an IDE-centric build environment.
The thing I've liked about collaboration since moving away from VS is our build and testing toolchains sit completely separate from development settings and IDE projects. It's very simple to switch things out and script in new workflows. It also means we don't need to install things like VS to test on a new (eg rebuilt production test) machine.
I'm sure the same is possible in Microsoftland, I've just never —even recently, I still interact with .Net developers and their work product— seen people making use of it, falling back on what Mother thinks best. Maybe they're not serious enough developers.
On reflection, my last reply was a little short-sighted. Of course the untethering and later freeing of MSBuild has certainly helped Microsoft-tethered developers.
The historical bias towards the IDE and component kits still exists —and probably will forever— but some of those things are reasons I found it so easy to pick and run with VB.NET and C#. I won't pretend it took me a while to work out what I was supposed to do when I left it all behind.
That all said, they are getting closer to the point (may be there already) where you can go from Powershell to remote Powershell over SSH.. But that still assumes you're lunatic enough to want to host anything on Windows. I think I've had too much freedom for too long now to ever consider that a good idea.
> I really can't believe somebody ever bought a MacBook because they found installing putty too much of hassle.
No, but something like installing putty was the last straw.
Putty is a terrible experience; very difficult to use. It's like every misstep or disconnection involves a dozen or so clicks back into the configuration area to "try again". This feels like normal on Windows though.
I recently tried to port my workflow to Windows for a year, but I eventually gave up simply because of something like this. I might've made it 6-7 months and I can't recall exactly where it was, death from a thousand cuts maybe.
Hat's off to you, I didn't even make it that many weeks.
Between filenames/paths being too long, poor terminals with janky colour schemes (save for Mobaxterm, it's great), WSL issues (like umask handling), gvim/vim issues with plugins, and loads of other annoying bits I just went back to Linux.
Linux is FAR from perfect, especially as I have an Nvidia graphics card, but there's a lot to like there too. Having run Fedora 27/Ubuntu 17.10 I've found I really really like Gnome. I seem to be in a club of one there (and it's buggy as hell on 17.10) but for me it's been great to use.
Not that I wouldn't use Mac if I found a couple grand down the back of the sofa, but as a daily driver Linux has been less painful. Even on the laptop, though I do have one of those Dell certified ones.
Given how critical good terminal experience is to modern IT the fact that putty is the go to tool for this in windows is a bad joke. Not to put down putty.
From the point of resourcing, I mean. Here we have Microsoft on a gazillion dollars of capital and one of the most critical tools for several people is developed by a single talented hobbyist who gives it for free.
Not to disagree with you on anything but same gazillion dollar company is now doubling down of a Javascript code editor because writing high quality native code is so difficult and expensive.
putty isn't a great client it just that it worked. I personally haven't used putty from a windows machine for over 5 years. I use cmder and just use it like I was on Linux. http://cmder.net/
Of course it's easy to straw-man this particular sentence. However many people - including me, once - bought a MacBook because it was the easiest way to get proper Unix tools like SSH at your fingertips.
Using PuTTY or Mingw tools on Windows sucks compared to using them on a Unix-based system. I gotta say the Windows Subsystem for Linux really helps in that regard - as does native SSH in cmd an PowerShell (PowerShell by itself is also pretty awesome once you get the hang of it). Linux did not use to be such a great competitor for the rest of desktop usage (some will argue it still isn't).
I bought a MacBook because the terminal on Windows, including PuTTY, is just.. bad. It's my main environment, I want it to be top notch. I'm shocked I've yet to see something that feels like iTerm2 on Windows.
I swapped to mac for this very reason, actually. Now that windows has WSL, I've been straddling the fence on whether to swap back (tried it back in Dec., might give it another try soon).
Well not just ssh but I did leave Windows for Fedora because Windows lacked a solid terminal emulator and all third party ones did was act as a wrapper around cmd.exe which solved some UX issues but not the core limitations of cmd.exe itself.
> I really can't believe somebody ever bought a MacBook because they found installing putty too much of hassle.
I'm one of these somebodies.
It's not that installing Putty is a hassle, but my choice to buy a MacBook was very heavily driven by the fact that macOS is Unix based. My time spent between Windows 10 and macOS is pretty even, but it is a much more enjoyable experience to develop in macOS partly because of the Unix-based shell.
The SHA1 variants are deprecated on modern OpenSSH as well, although they're still supported if you explicitly enable them.
I agree that it would be nice to have them "opt-in" in Windows as well, in my experience a significant amount of legacy equipment still uses these deprecated algorithms.
I'm interested how well the client works under cmd.exe. Last I tried to use ssh via cygwin, I remember having a lot of issues with escape codes not working, to the point that I had to go ahead and install puTTY anyway, just because it was a much better terminal emulator. Microsoft has neglected their terminal emulator for 20 years now[0]. I hope they improve it soon. I'm aware that some cosmetic features were added in Windows 10 but frankly it still sucks compared to even the most basic Unix terminals. Making the terminal a first class citizen in Windows would do a lot to win developer market share.
Oops, that was supposed to be a a footnote (just my acknowledgement that there had been some changes to cmd for Windows 10), but I decided to put it inline. Can't edit with the HN app I'm using currently.
I know all about the alternative terminals for Windows and none of them are much better. ConEmu feels so hacky and way out of scope for what it's supposed to be doing. Does it still require Administrator, and hook directly into the framebuffer?
You can blame MS for first part. Don't really get what you mean by "out of scope".
But anyway, from my personal point of view, ConeEmu is by far the best console terminal out there (including the Linux ones). It's by far the most customizable one and with some work the result can be pretty amazing.
Windows Console has improved a lot since Creators Update, adding built-in support for many VT escapes (including all the common ones) and even 24-bit color in the console. They're doing their best to make it first class for developers. You should follow the command line team's blog: https://blogs.msdn.microsoft.com/commandline/
Although it's appreciated as a UNIX admin I can honestly say I don't use Windows by choice but because my enterprise says I must. That's partially because all the productivity tools are found there and partially because the desktop guys are massive Microsoft bigots and refuse to host anything else. (It's OK I can say that as a massive UNIX bigot and besides they'll tell you the same.)
And frankly with the tiniest bit of effort I can crank up a local xterm and then ssh which gives me lovely things like color, font choice, easy window size changes and thousands of lines of scrollback. Why in 2017 would I want to use a bare naked ssh client unless there is simply no other choice?
Default packages are extremely important. That you can walk up to any computer and get work done without installing anything, even downloading putty.exe is far too much effort in some cases. Also it is kind of rude to just download and execute things on friends/colleagues computers ad hoc.
If this will be installed by default it will be awesome, and imho even the process described here by enabling a feature is still better than putty.exe (it will get managed by windows and updated if need be etc.).
For my own windows computers though, the first thing I install is WSL and a proper terminal app (cmder).
Yeah it's handy to have by default, no doubt. But unless it also includes all the other client modes as well (scp, sftp, etc) and all the features found in Putty to boot I think the author's conclusion that Putty's days are numbered is a bit unrealistic.
I will say if this includes active directory integration so that ssh'ing from a windows box to a kerberos-protected unix one that could be slightly helpful. And if not that's just another reason to keep using putty. LOL.
If you do not want to watch go to “Manage Optional Features” then + “Add a feature”. You can then scroll down the list and find the OpenSSH Client (Beta) and OpenSSH Server (Beta) features in Windows.
Do you really need a video when the installation instructions are 2 sentences?
Even if the installation instructions are more than 2 sentences, I absolutely hate if video is the only documentation method. It has its value as a supplement to a text description, but not without the text.
(The worst offender that I've come across for this stuff is Minecraft mods. I want to know how this machine block works, not watch you chat about random stuff for 30 minutes hoping that the explanation is somewhere around minute 19!)
Yeh, at least provide a command-line method of installing it.
If you're the type to install ssh, I'm guessing you're not a typical Windows user who is horrified by the command-prompt.
Yeah, they probably found out that sending the data from their own adware/spyware over unencrypted channels back to their own servers was too insecure. just kidding ;-)
No seriously: Congratulations MS and please evaluate again if you really need that extra money you make with your advertising deals.
If open source isn't a requirement and you want a polished GUI client, https://www.bitvise.com/ssh-client has been free as in beer for about 1.5 years. It will be tough for them to beat being part of the default install!
Bitvise sells a solid Windows-friendly SSH server for $100. I am not affiliated apart from being a happy user since before OpenSSH supported AuthenticationMethods (multiple required) in 2013; it has been my straightforward licensing alternative to Remote Desktop Gateway.
Thanks for pointing this out; I'd forgotten about that (having given up on Putty after discovering the difficulty of sharing configuration https://stackoverflow.com/q/13023920).
Putty.org links to the Putty download page with a disclaimer separating promotion of Bitvise software below. The contrast in marketing language between "source code [...] developed and supported by a group of volunteers" vs. "developed and supported professionally" definitely appeals directly to the Windows mindset! Unfortunately Bitvise's "growth hacking" makes commercial sense, even if it does cost them potential users.
What I'd really like to see is an OpenSSH server for Windows. My biggest gripe is not being able to SSH into a Windows machine and use one of the 3 major shells available now (cmd/powershell/bash).
If it doesn't have to be OSS, Bitvise have one that is free for personal use, otherwise available under a commercial license.
Ive been using it for probably > 5 years, and it's been rock solid.runs as a Windows service, supports both Windows and custom credentials, comes with a nice GUI configuration tool too, can highly recommend it.
As someone who makes online training courses, the whole putty dance for Windows was so cumbersome. This is excellent news.
Personally I would recommend anyone on Windows to use WSL (which supports ssh and scp out of the box) but it's nice to see this is available for people who don't want to use WSL.
So this is why Microsoft is such a leader in technology. After only 22 years, ssh is now in it's operating system! Wouldn't it be nice to have a monopoly that actually is innovative, rather than simply a lackluster follower?
530 comments
[ 9.4 ms ] story [ 377 ms ] threadBut nevertheless I'm happy. Great job
> For years, Apple MacBooks have been the go-to choice for many admins partly because getting to a ssh shell is so easy.
Honestly though, I'm more interested in an SSH server for Windows. I haven't tried for many years, but last time I did, getting something more secure than telnet was a massive pain.
https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win...
It works but I never managed to connect to it using public/private keys, only username and password.
Luckily I don't have to type them:
sshpass -f password.txt user@windows.host "powershell Stop-Computer"
It would be great if at least Windows Server came with a built in ssh server.
https://github.com/PowerShell/Win32-OpenSSH/issues/420#issue...
"No SSH" doesn't mean "no remote management capability." SSH hasn't been available because you don't need it unless you need to manage a Linux system or a network device. The only reason it's being introduced now is because people like to use git, and git fucking sucks if you're not in a POSIX environment.
Every router for the past 10 years has shipped with an SSH client. If you wanted to login to it securely from a Windows box, you had to download Putty first, or enable some janky self-signed web interface.
https://stackoverflow.com/a/25755481/3712 (MSYS2 dev)
As for whether it's slower, I expect there'd be very little difference but MSYS2 would be a tiny amount slower due to the extra conversion work.
https://github.com/msys2/msys2/wiki/How-does-MSYS2-differ-fr...
MSYS2 provies a minimal shell required to run autotools and other build systems which get the source for software from the Internet from different repositories, configure them and build them. The shell and core tools exist mainly to allow porting Unix programs to run natively on Windows (i.e. without requiring a POSIX emulation layer). MSYS2 doesn't try to duplicate Cygwin's efforts more than necessary, so the number of provided POSIX-emulated software is very small.
(I recommend Cygwin, I've been using it for 15 years or so, and have access to almost everything I've ever needed from Linux command line. The slowest thing is forking; emulating it in Win32 executables is not easy on NT kernel. MSYS2 doesn't fix that.
Also, apt-cyg is pretty decent for installing packages on Cygwin.)
I'm going to recompile one of my sideprojects with MSYS2 today...
Directory trees are indeed another thing that are not enormously fast in Cygwin, but how often do you do recursive listings of directory trees? I don't even do that often on Linux because it's not fast there either.
Specific example: `find` has several tricks up its sleeve that it thinks are fast (e.g. looking at link counts on directories to test for leaf directories), but emulating the APIs that it uses for these tricks are part of what makes it slow on Cygwin (Cygwin will need to count the directories to emulate the link count, which makes it O(n^2) rather than O(n)). You can use -noleaf to turn this off. But `find` does other stats that make it slow.
I use a script that wraps `cmd /c dir /b /s /a` (IIRC) and cygpath for the few scripts I have that do much recursive processing, but it's very rarely a big factor. My biggest directories are on my NAS which is Linux.
My single biggest performance problem - as in, almost debilitating on Cygwin - are poorly written Emacs plugins that do filesystem access in the status line update callback (e.g., Projectile). But they're easily monkeypatched when they crop up.
https://hn.algolia.com/?query=voidtools&type=comment
I mean, it affected enough scripts I was running that I noticed the slowdown plainly as daylight when I started using Cygwin. I'm surprised you don't notice it!
[0]https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.ht...
Signing doesn't prevent downgrade attacks, HTTPS does.
Do you know the version of PuTTY you have installed without checking?
Edited to add: ARP-spoofing the right LAN requires spearphishing and APT, which I think also require significant resources.
I was thinking more about employees, or students at universities, or such. I believe I've seen tools that ARP-spoof and then automatically detect downloads of ELF or PE files and trojanize them, all without requiring almost any knowledge from the attacker. I don't know if any of these tools detect Putty and fix its signature too, but it wouldn't be hard to do.
At least they can't afford intentional incompatibilities in this case.
Does it, or is this FUD? The source code is available.
Feel free to audit the source code if you want, I'm not using Windows any more so I don't really care.
I really can't believe somebody ever bought a MacBook because they found installing putty too much of hassle.
Just install Ubuntu Shell.
Also, it's not like you don't need to install iTerm, zsh, docker, python libraries etc on mac. It's not like it comes with them by default. Your argument is kind of moot.
Mabye Homebrew, and its predecessors, were the real killer apps for mac?
cmd.exe and conhost.exe won't do the job.
Maybe I just don't remember installing it, but I think macs have zsh out-of-the-box too.
Depends, for the occasional deep into CLI world to run a script, is quite ok.
Granted, the defaults regarding mouse copy-paste and window size were only improved on Windows 10.
> Not to mention that since developers are only using Linux and Mac, you will have libraries which does not work on windows (because nobody even tried).
Not all developers are pure UNIX devs doing POSIXy stuff.
Why they're trying to replace it with Powershell rather than improving cmd.exe is silly, however.
However I do think it could have been made less verbose and dislike the ps1 extension, as the 1 (one) does not make sense.
For instance, "%" is an alias for ForEach-Object, "ls" for Get-ChildItem, etc. And you can of course define your own.
The pleasant interaction with other *nix systems was and is a primary driver for my choice of OS X.
PuTTy sucks. Every other terminal I have tried on Windows sucks. Getting terminal-based software to work on Windows sucks. I stopped trying years ago because a terminal on OS X doesn't suck. It might not be a perfect 10, but I'm happy with it.
I'm also more interested in Windows more and more as time passes.
Losing as the most popular OS has made Microsoft start doing some of the right things.
Never been a problem for me. What are your complaints?
I barely notice the difference, but if I had to choose I'd take putty over Terminal.app, which has default keyboard-shortcuts that clash with Bash. (I believe it was Alt-b, Alt-d, or maybe Alt-f. I forget exactly.)
But it's not a problem with PuTTY, it's a problem with Windows networking subsystem. Once you remove cable, the whole interface immediately goes down, IP address gets deconfigured, and all open sockets using the address get closed. (I was bitten in the ass by this when I had several Windows Server machines under my care.)
You'll get exactly the same with any other long running TCP connection.
It is worth to emphasize what has been said before here: Since Windows popularity is decending, they start to catch up with that attitude. Nowadays, for instance, you can open the terminal from every folder in explorer.exe -- this is exactly this kind of integration Windows missed for 20 years. Once they kick out cmd.exe in favour of something like Console2 (https://www.hanselman.com/blog/Console2ABetterWindowsCommand...) and update the toolchain even more than they did with PowerShell (actually integrating GNU/bash was a major step), developers will come back.
https://blogs.msdn.microsoft.com/commandline/2017/10/11/what...
I say all of this having been a paying MobaXterm customer in the past.
These days I use ConEmu, WSL, and Bitvise (for those rare occasions I want to easily tunnel to the Windows side).
> Remove the network cable while in an SSH session...
This argument seems a bit contrived. Is this honestly something you're concerned with on a daily basis? I doubt it.
> Try doing a port forward, and you'll need to dig around instead of just typing it into a terminal.
No, you don't just type "it" into a terminal. First, you have to lookup the command syntax if you haven't used it in a while. Then you have to type it in correctly and if your syntax is off by even one character, things don't work.
> Also aesthetically, PuTTy has nothing on Terminal.app or iTerm2 etc.
Aesthetics are nice but do you even have a tool like WinSCP? It graphically displays the remote filesystem over your SSH connection and then lets you open a terminal to the path you were looking at. I don't even have to type my password when I open a new terminal from WinSCP.
I like Putty's graphical session manager; on OSX and Linux I don't want to fiddle with ~/.ssh/config.
The lock-in with Putty is annoying though, being able to export all configured sessions to a .ssh/config file would be awesome.
Again CAVEAT EMPTOR (as with anything to do with regedit).
With Putty, if I want to change, say, the size of the terminal opened on connections, I'd have to update every Putty session individually. Been there; done that. Ridiculous. That should be a function of the terminal you run SSH under, not the SSH session itself.
It is definitely a lot messier than working with ssh_config.
Okay, I think I just found a new contender with GIMP for 'worst software title'...
Sure you can: https://devops.profitbricks.com/tutorials/use-ssh-keys-with-...
It's generally difficult and awkward to work with and unpleasant to look at.
Oh, you meant on Windows.
If you use git on Windows with PuTTY/plink it's also significantly slower than OpenSSH. I saw clones of a large repository go from 60 KB/s to 600 KB/s after switching from PuTTY to OpenSSH.
What are the killer features of iTerm2?
https://iterm2.com/documentation-tmux-integration.html
I think it's the explosion of open source and the corresponding command line tools that they started investing some time and effort to the command line.
A natural result is now the Devs working at Microsoft ALSO wish they could use the command line for everything in Windows. Thus Powershell, and things like AZ CLI becoming much better.
[0] http://cmder.net/
Macs historically have always been a decent compromise for having decent GUI/Linux-like terminal/nice hardware.
It's kind of a different environment now, with PC manufacturers coming up with well designed laptops and Windows offering more Linux integration.
I don't know what examples you had in mind when you mentioned applications having incompatible keyboards. The only one I know that does that is Vim (which by default uses the internal clipboard when you use its cut, copy and paste commands) but Vim is definitely not your average Linux application...
If I had a Linux laptop, an extraordinary amount of my time would be spent trying to make it work. Wireless breaks, sound breaks, upgrades break everything. I would have to spend a serious amount of time and research finding a laptop that had good Linux support... regardless I would still probably have to spend hours trying to get the sound or the wireless or sleep or some feature or another to work properly.
OS X just gets out of the way. I have never had to put any work into making the graphics card work or making sound work or making the network work or fixing boot... you get the picture.
If I'm using Linux on a laptop to do any sort of work, a sizable portion of the work becomes keeping Linux working on the laptop and I don't want that.
Linux on unsupported laptops (which is most of them) sucks big time, but not linux desktop itself. It works great on standard desktop computers (towers)
you should make that distinction, because otherwise you'll just start a flame war.
One thing I've learned is distrohopping is a must if your hardware is an edge case... that said, since moving to Manjaro, I haven't had to use anything else.
The Linux desktop has come a long way, even in just the last year or two. I know everyone always says that, so take it with a grain of salt, but I have never been happier with the state of the Linux desktop.
Might it be that we tend to like what we're used to? When I jumped from WinXP to a Gnome2-desktop, I tried to make it a bit more like WinXP, even though these days I would probably want nothing of how WinXP desktop is laid about.
But yeah, if you buy anything that's not part of the "top of the line developer notebook" category, specifically the Intel not AMD ones, then almost nothing will work out of the box :)
Sure, not the very newest hardware, but it's not like laptops have gotten significantly more powerful for anything that actually matters, for the last couple of years.
The biggie is the GPU. T420 has no oomph to run an external 4K display (at more than 24 Hz, i.e. in usable mode). Broadwell and newer do have the capability to run 2 of them.
The CPUs got less power-hungry. You can do the same work with less juice, so your battery lasts longer.
The SSDs with the new interfaces got much faster. There is simply no comparison between M.2 nvme drive and SATA3 SSD.
Sadly, wifi took a step back, with almost universal unavailability of anything better than 2x2 MIMO 802.11ac. In the past, MIMO 3x3 used to be available (Broadcom, but the option was there).
So yes, modern laptop is significantly different experience than few years old one, despite the CPU having the same GHz.
My point is that they're not noticeably faster for the things most people use their computers for. They still run browsers, Spotify, email, word processors and all of that just fine and last "long enough" on a charge.
The improvements have been incredibly marginal for most people.
Also, they do not have a problem with Electron apps. for most people, they are just apps like anythig else, and do not perceive any performance problems with them.
And where did Electron apps come into the discussion?
Even the Apple 2015 M.2 drives, which are "only" AHCI, but with much deeper queue (i.e. nonstandard), can do 1.something GBps and the difference compared to standard SATA SSD is noticable by normal users.
Electron apps are something normal people use and some of them compain about the speed/lag/memory usage. Usually those with older computers, who think nothing changed in the last years ;).
If you do the first, you will do also the second. It makes a difference even when launching Excel or Firefox.
Between SATA SSD and PCIe? Sure, for extremely IO-heavy tasks there's a difference to be felt, but not really in everyday use.
Also, I run an Intel Nuc (laptop hardware, essentially) with Ubuntu as a main development machine. 0 problems. 0% in the way.
OSX is great, don't get me wrong. But, it's been years since I've ran into driver problems with desktop Linux.
In years past you may have spent hours getting wireless or sound working. These days, if you buy decent, mainstream hardware it just works. Ubuntu does a great job of getting out of the way.
I'm a Fedora guy, myself, but find myself recommending Xubuntu to more and more people for casual computing because 1) it really does just work, and 2) Xfce is lightweight and lets you use your CPU for doing real work vs. holding up a bloated windows manager.
At our office, the macOS laptops tend to have the most problems with sound & graphics; the Linux desktops, OTOH, Just Work™. I find that pretty funny, actually, because I would have expected it to be the other way around.
I've never had anything similar happen with a PC (we use Thinkpads), whether running Linux or Windows.
My Mac problem was solved using ethernet adapter.
I hear that argument frequently. On macOS (or even Windows) things just work(tm), while on Linux (or some BSD), there is always something that does not work correctly.
I guess I must be quite lucky. A long time ago, I positively enjoyed spending an entire weekend getting a sound card to work or something. To be honest, these days I consider myself too old for that stuff. I, too, like it when things just work. But really, Linux as a desktop system has come a long way, and for the past couple of years, things have pretty much just worked(tm) for me.
Picking hardware that is supported by Linux takes a little care, so does picking a distro[1], especially with laptops. But I prefer to do a little research before buying a laptop anyway, because I am usually on a budget.
[1] In my experience, the more recent the hardware, the more unlikely Debian is to work. OpenSuse has worked well for me, though.
Linux could be the new Mac os X if all the Linux distributions chose to focus on one platform and way to do things, but nobody in the Linux world is going to do this.
Also, Mac has unified hardware, so they pretty much can optimize so that stuff Just Works.
The Dell XPS 13 is a good choice if you want something from a major manufacturer, but there are loads of smaller companies, too.
Of course there are things that are not working so nicely, and are not meant to. For instance, running RHEL (which is a server OS) on a laptop (which typically has new optimized hardware which is not meant to be server) and then expecting graphics and WiFi work on a kernel that is much older than your hardware and thus has no drivers.
Perhaps you might expect some trouble also when running Windows Server 2012 on a new laptop? I don't know, I haven't tried, but wouldn't be surprised.
And so therefore, no one else has either!
One of the big reasons Linux Desktop still sucks is the outright refusal of the community to acknowledge any of its problems.
How do you define "mainstream laptop"? Or is it a laptop that can run desktop Linux without problems?
There’s a lot of things I like about macOS [eg: better power management], but the main reason I switched was because it was a Unix I could put Photoshop and InDesign onto.
That argument trumps pretty much everything else. If my boss came into my office today and told me to switch all of our desktop computers to Linux, as much as I would enjoy that, I would have to tell him that it cannot be done, because we use a lot of software that just is not available for Linux. (And a fair amount of it is not even available for macOS.)
I usually use iTerm2 as well.
The web, Unix, Linux, OSX, pretty much everything other than Microsoft uses properly namespace driven forward-slash separated paths with no drives and case sensitivity.
That you can't fix, merely abstract it away. I am tired of mapping between the two.
Then I cut and paste. Oh no wait I can't. Now I have to replace all the /'s with \'s and d with d:...Or
I'm done and moved over the fence. \ means escape. / means path separator. No \\ problems either.I'm a Unix user since about '93 for ref as well. I am poisoned with forward slashes everywhere :)
Name one that isn't just "Bourne Shell does it different".
I think the question is not whether someone would buy a MacBook because it has these tools built in but rather, why would someone buy Windoze given that it doesn't have these tools built in?
There are some workarounds if you use particular terminals (for instance you can't use Mobaxterm as it forces 777 regardless) but it's not exactly 'it just works' yet.
[0] https://github.com/Microsoft/WSL/issues/352
While Microsoft has started doing good things which I can agree on, when did they lose OS market share to the point of not being number one? If we're talking about Apple hardware outselling any one vendor, that's true, but there's volume. Also, one of the first things I did after getting my MacBook Pro (and others I know who don't want to leverage VMs/Parallels. I like Windows and OSX being separate from a context point of view) was dual boot Windows.
Android is first by a large margin. iOS almost outnumbers Windows as well.
Microsoft post iPhone needs to prove that it's worth using a desktop at all, not that they deserve to have the highest share of desktop users. Stopping the bleeding inflicted by Macs, which sync so well with iOS, is part of that.
The number of people using Windows to do their "computer things" has gone down dramatically. Even if they have a Windows computer, much of the time spent doing computer things has moved to Android and iOS.
PuTTy is amazing, and my experience of using windows over the years would have been far worse without it.
However I do understand the point - compared to using a real terminal, it does indeed suck to be stuck on windows using PuTTy
For a terminal on windows, I have now taken to install cygwin, X on cygwin, and then xfce-terminal on top. It's not perfect either, but it is better.
I doubt Windows 10's inclusion of ssh alone addresses this use case; for that you'd want a full cygwin or something. I don't know anymore - I don't use Windows for any purpose other than games on dedicated gaming computers these days. Despite Apple going backwards with each successive macOS release (probably since 10.8) it's still a much more usable OS for the majority of the things I do than Windows 10. I do like Windows 10 better than Vista and 7, though, on my current gaming computer.
And of course my next computer will be a MacBook again.
Normally you have a fully-fledged programming language that sometimes runs a command being SSH client, and universal one at that (you can pipe data through it, you can pipe data out of it, you can run remote commands non-interactively with it, you can jump through SSH on other hosts with it, you can set up TCP tunnels in ad-hoc manner without going through the configuration, and obviously you can run an interactive shell). Plus you get scp for file transfer out of the box, and lftp (which understands sftp protocol) and rsync after installing some barely related software, all of them still able to jump through other hosts.
Now compare it to the glorious ability to open a window with remote shell (and only direct one, no jumping through a bastion host), and maybe a TCP tunnel with some clicking through every single time (you can't recall the history of commands, because there was no command in the first place; the best you can do is to save the tunnel configuration permanently). And maybe file transfer if you remembered to download PuTTY's scp client.
You can do SSH proxying with PuTTY, too. It's just called something different:
https://stackoverflow.com/questions/28926612/putty-configura...
Plus PuTTY has a command line interface and everything. You can do all the things you mention with PuTTY from a cmd.exe or PowerShell prompt.
Not trying to be condescending, but it seems to need highlighting that just having SSH access isn't enough.
Not to mention that these other environments have offered other benefits [especially] to developers looking for a programming environment that works for them. The VS.Net IDE-play-button approach to automating testing and deployment doesn't scale for everybody.
https://news.ycombinator.com/item?id=14099051
https://arstechnica.com/gadgets/2017/11/tabs-come-to-every-w...
> the people buying Macbooks, or using Linux directly [...]
... don't give two hoots about Powershell. Sorry, but I did limit what I was saying to describe people not using Windows.
PS: From the fact that you refer to Visual Studio as "VS.Net", I take it that you haven't been in Microsoftland for a while. No serious developer uses these "play-buttons" to do their automated testing and/or deployment.
It's been about a decade since I moved to Linux. Just skimming the latest VS docs though, the structure of unit testing within VS pretty identical to how it was. The feedback is a little more inline and I guess the extensions are a fairly big deal... But that sort of lends to my point that the IDE is still pushing itself down your throat for an IDE-centric build environment.
The thing I've liked about collaboration since moving away from VS is our build and testing toolchains sit completely separate from development settings and IDE projects. It's very simple to switch things out and script in new workflows. It also means we don't need to install things like VS to test on a new (eg rebuilt production test) machine.
I'm sure the same is possible in Microsoftland, I've just never —even recently, I still interact with .Net developers and their work product— seen people making use of it, falling back on what Mother thinks best. Maybe they're not serious enough developers.
The historical bias towards the IDE and component kits still exists —and probably will forever— but some of those things are reasons I found it so easy to pick and run with VB.NET and C#. I won't pretend it took me a while to work out what I was supposed to do when I left it all behind.
That all said, they are getting closer to the point (may be there already) where you can go from Powershell to remote Powershell over SSH.. But that still assumes you're lunatic enough to want to host anything on Windows. I think I've had too much freedom for too long now to ever consider that a good idea.
No, but something like installing putty was the last straw.
Putty is a terrible experience; very difficult to use. It's like every misstep or disconnection involves a dozen or so clicks back into the configuration area to "try again". This feels like normal on Windows though.
I recently tried to port my workflow to Windows for a year, but I eventually gave up simply because of something like this. I might've made it 6-7 months and I can't recall exactly where it was, death from a thousand cuts maybe.
Hat's off to you, I didn't even make it that many weeks.
Between filenames/paths being too long, poor terminals with janky colour schemes (save for Mobaxterm, it's great), WSL issues (like umask handling), gvim/vim issues with plugins, and loads of other annoying bits I just went back to Linux.
Linux is FAR from perfect, especially as I have an Nvidia graphics card, but there's a lot to like there too. Having run Fedora 27/Ubuntu 17.10 I've found I really really like Gnome. I seem to be in a club of one there (and it's buggy as hell on 17.10) but for me it's been great to use.
Not that I wouldn't use Mac if I found a couple grand down the back of the sofa, but as a daily driver Linux has been less painful. Even on the laptop, though I do have one of those Dell certified ones.
From the point of resourcing, I mean. Here we have Microsoft on a gazillion dollars of capital and one of the most critical tools for several people is developed by a single talented hobbyist who gives it for free.
Using PuTTY or Mingw tools on Windows sucks compared to using them on a Unix-based system. I gotta say the Windows Subsystem for Linux really helps in that regard - as does native SSH in cmd an PowerShell (PowerShell by itself is also pretty awesome once you get the hang of it). Linux did not use to be such a great competitor for the rest of desktop usage (some will argue it still isn't).
I'm one of these somebodies.
It's not that installing Putty is a hassle, but my choice to buy a MacBook was very heavily driven by the fact that macOS is Unix based. My time spent between Windows 10 and macOS is pretty even, but it is a much more enjoyable experience to develop in macOS partly because of the Unix-based shell.
It's a good step to be sure, but not a replacement for Putty by any means.
without these you'll likely be unable to connect to Cisco devices, vCenter, etc.
I agree that it would be nice to have them "opt-in" in Windows as well, in my experience a significant amount of legacy equipment still uses these deprecated algorithms.
As for the terminal, it went under quite a revamp for lxss support (linux subsystem / Windows Subsystem for Linux)
[0]: http://conemu.github.io/
You can blame MS for first part. Don't really get what you mean by "out of scope".
But anyway, from my personal point of view, ConeEmu is by far the best console terminal out there (including the Linux ones). It's by far the most customizable one and with some work the result can be pretty amazing.
And frankly with the tiniest bit of effort I can crank up a local xterm and then ssh which gives me lovely things like color, font choice, easy window size changes and thousands of lines of scrollback. Why in 2017 would I want to use a bare naked ssh client unless there is simply no other choice?
If this will be installed by default it will be awesome, and imho even the process described here by enabling a feature is still better than putty.exe (it will get managed by windows and updated if need be etc.).
For my own windows computers though, the first thing I install is WSL and a proper terminal app (cmder).
I will say if this includes active directory integration so that ssh'ing from a windows box to a kerberos-protected unix one that could be slightly helpful. And if not that's just another reason to keep using putty. LOL.
I'll skip and continue supporting and using PuTTY.
The PuTTY developers should get a trophy for an essential dev tool that has been around for ages, free and just works.
If you do not want to watch go to “Manage Optional Features” then + “Add a feature”. You can then scroll down the list and find the OpenSSH Client (Beta) and OpenSSH Server (Beta) features in Windows.
Do you really need a video when the installation instructions are 2 sentences?
(The worst offender that I've come across for this stuff is Minecraft mods. I want to know how this machine block works, not watch you chat about random stuff for 30 minutes hoping that the explanation is somewhere around minute 19!)
(I assume most of these videos are so unnecessarily long because it increases ad earnings for the content creators.)
Add-WindowsCapability -Online -Name OpenSSH.Client
No seriously: Congratulations MS and please evaluate again if you really need that extra money you make with your advertising deals.
Odd licensing (free for up to 4 users/machines, but crossing to 5 required $45/seat) really crimped adoption before the license was changed. https://web.archive.org/web/20160329203117/https://www.bitvi...
Bitvise sells a solid Windows-friendly SSH server for $100. I am not affiliated apart from being a happy user since before OpenSSH supported AuthenticationMethods (multiple required) in 2013; it has been my straightforward licensing alternative to Remote Desktop Gateway.
Putty.org links to the Putty download page with a disclaimer separating promotion of Bitvise software below. The contrast in marketing language between "source code [...] developed and supported by a group of volunteers" vs. "developed and supported professionally" definitely appeals directly to the Windows mindset! Unfortunately Bitvise's "growth hacking" makes commercial sense, even if it does cost them potential users.
It is always interesting to contrast various SEO approaches; for example: contrasting https://www.chiark.greenend.org.uk/~sgtatham/putty and https://winscp.net. It would be neat if the Putty author would chime in here; perhaps a funding drive for putty.net is in order!
Ive been using it for probably > 5 years, and it's been rock solid.runs as a Windows service, supports both Windows and custom credentials, comes with a nice GUI configuration tool too, can highly recommend it.
It works. Really well.
Microsoft are going to try and get the forked Windows support merged into OpenSSH ports upstream.
Personally I would recommend anyone on Windows to use WSL (which supports ssh and scp out of the box) but it's nice to see this is available for people who don't want to use WSL.
Do you have something you can share publicly to demonstrate to the uninitiated how painful this has been?
Putty's dedication to the Windows registry has caused me tremendous grief.
Helping end users (Windows developers) configure Putty is the bane of my "discount" remote access strategy (SSH port forwarding).
It gets even worse too because in some of my courses (like my Let's Encrypt course) I request people to securely transfer files to their DO server.
So now they have to set up WinSCP or a comparable tool, which has its own set of lengthly instructions.
And for comparison on MacOS, Linux or WSL it's just:
Create SSH key: ssh-keygen -t rsa (hit enter a couple of times)
SSH into a server: ssh user@host
SCP a file to a server: scp foo.conf user@host:/tmp