PuTTY Equivalent for Mac

Is there a good PuTTY (free telnet / ssh client) equivalent for OS X?

I know that I can just use terminal and an ssh command, but I want some sort of application that will store connection info, passwords, logs, etc for me, much like PuTTY.

Does this exist?


Solution 1:

PuTTY is a great Windows frontend, not to mention the need for an SSH client in the first place. On Linux, OS X, and most other UNIX-y based environments, SSH is generally purely command line, but still amazingly powerful.

The SSH client allows you to store an amazing amount of properties based on a given hostname, even global defaults, in the "ssh_config" client file. This file doesn't exist by default (per the comments on the question), but should be written at ~/.ssh/config.

That path equates to:
~, your home directory, it expands on my system to /Users/jason.
.ssh, the leading dot makes it hidden. If you're in Terminal and in your home directory, you can simply run cd .ssh and enter it.
config is the file name, it is a plain text file with configuration parameters.

I use this file to control tunnels I always use, the private key needed for the connection, the username (if it differs from my local username), etc.

See the manpage, either via man ssh_config on your own machine which will contain the most appropriate version, or you can view it online from OpenBSD's Site.

Some example contents from my ssh config file are:

ControlMaster auto
ControlPath ~/.ssh/sockets/master-%r-%h-%p
VisualHostKey yes

Host serve
    Hostname 8.8.8.8
    User        jason
    IdentityFile ~/.ssh/id_rsa
    LocalForward 5901 localhost:5901

Whitespace is purely personal preference, it is not required except to separate Keys from Values.

The first three lines are global properties, they affect every SSH connection. The second section is a host-specific configuration.

The Host line specifies the host tag you will use when invoking ssh. Ex. ssh serve. When running that, it loads all the properties listed until the next Host line.

Since serve is not necessarily a DNS name, I specify the Hostname that it should actually connect to (no, not actually mine). User is self explanatory and there just to be explicit, and the IdentityFile is the path to the Private Key file it uses to connect.

Lastly, LocalForward sets up a port forwarding rule that I send through the SSH tunnel.

The various syntaxes are all documented on the man page.

There is no mechanism for defining a plain text password. Password entry is ALWAYS interactive when setting up the SSH connection. If you want to log in automatically, set up Private Key Authentication. Storing plain text passwords is stupid, always.

I use this to great effect. And the best part? All your SSH configurations are incredibly portable, it's just one file that you have to backup/retain, and move between system to system! Not so portable to Windows, but who really likes dealing with the registry anyway?

Solution 2:

Why not using MacPorts (https://www.macports.org/)? They have ported putty. You'll need to install MacPorts first, but once you've done that you can run:

>sudo port install putty

and you'll have putty available on your Mac.

Solution 3:

I have no experiences with this App: ZOC - I only did a quick Google on "OS X telnet GUI" and got a link to this product as the first hit - but it seems to do the same as PuTTY.

There is a 30 days trial available.

ZOC is a professional SSH/telnet client and terminal emulator. With its impressive list of emulations it lets you easily connect to hosts and mainframes, using communication methods like secure shell, telnet, serial cable or modem/isdn.

Its sleek user interface has many ways of making your life easier. In its own way, ZOC is the Swiss Army Knife of terminal emulators: versatile, robust, proven.

Key Benefits:

  • Tabbed sessions with thumbnails
  • Customizable to meet your preferences and needs
  • Scripting language with over 200 commands
  • Compatible with Windows 7 and OS X Mountain Lion
  • Administrator friendly (deployment, configuration)
  • Now $79.99 with attractive bulk discounts

Key Features:

  • Emulations: VT220, xterm, Wyse, QNX, TN3270, TN5250, ...
  • Communication: SSH, Telnet, Modem, Serial Cable, ...
  • File Transfer: SCP, Zmodem, Xmodem, Ymodem, Kermit, ...
  • Click here to find out more about ZOC's features...

Solution 4:

Jason's answer is definitely the way to go, but I'd like to point out a feature of Terminal that may be useful.

Within Terminal, you can make a direct connection to a remote machine similar to the way PuTTY does, without first opening a terminal window on the local machine. Simply select Shell->New Remote Connection... (cmd-shift-K). In the window that pops up, you can add any SSH server to the right-hand column, including aliases defined in the ~/.ssh/config file.

Using Jason's example, you would select "Secure Shell" as the service on the left, and then add "serve" to the list of servers on the right.

In the future, you can open the dialog box (much like the main PuTTY window) and double-click the entry for the server you want to connect to. The only difference between this and PuTTY is that you put custom configuration settings in the ~/.ssh/config file, which I see as a huge advantage.

Solution 5:

You can install PuTTy on OS X with Homebrew:

brew install putty --with-gtk+

And then run it from terminal as putty.

If you don't have Homebrew, you can install it from Terminal:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor