Secure Shell, of course. Besides the obvious OpenSSH link, this page will hold some of the less obvious (and more useful) stuff:
Resources
| Category | Date | Link | Notes |
|---|---|---|---|
| Clients | MIDP SSH | ||
| SSH Tools | includes a secure VNC client in Java, sources |
||
| JavaSSH | another (smaller) applet |
||
| PuTTY Symbian port | |||
| MindTerm | oldie but goodie Java applet |
||
| PuTTY | |||
| ssheven | a modern SSH client for Mac OS 7/8/9. |
||
| Essentials | fail2ban | block script kiddies and other pests from trying to do dictionary-based attacks on your server (on the internet, nobody knows that you only use key-based authentication – not even morons). |
|
| HOWTOs | Restricted Shell for scp/sftp | ||
| Using ssh-agent | |||
| scponly | |||
| An Illustrated Guide to SSH Agent Forwarding | everything but SOCKS, but pretty useful to hand out to newbies. |
||
| Libraries | sshfs | a FUSE / VFS -based filesystem layer atop SSH (FUSE has a BSD port, and there are now plenty of equivalents for Mac OS X) |
|
| org.keyphrene | Python wrapper |
||
| Servers | 2024 | tinyssh | a minimalistic SSH server which implements only a subset of SSHv2 features. |
| Tools | Gnome SSH Tunnel Manager | ||
| sshrc | take your environment with you |
||
| secretive | a tool to store keys in the macOS Secure Enclave |
||
| 2023 | ssh-crypt | a tool to encrypt/decrypt data using your ssh key from ssh-agent |
|
| 2024 | dracut-sshd | an initramfs plugin to remotely decrypt root filesystems upon boot |
Useful tricks
macOS keychain
SSH key handling has been changing throughout the years, but in Sierra (10.12.2) things can be restored to a modicum of sanity with these settings:
Host *
UseKeychain yes
AddKeysToAgent yes
Automatic session forwarding
If you routinely need to access a host behind another (or a VM inside a host), this is a relatively painless way to do so (won’t allow you to do SFTP, though, since that’s a different subsystem):
cat ~/.ssh/authorized\_keys | grep command
command="ssh user@host" ...rest of key
Keep-alives
Using the built-in keep-alive feature to maintain tunnels with a TCP keep-alive and a 30s internal (in-band) client active check (will try 10 times before disconnecting):
KeepAlive yes
ClientAliveInterval 30
ClientAliveCountMax 10
Speeding up connections to the same host (thanks to Melo):
$ head -3 ~/.ssh/config
Host *
ControlMaster auto
ControlPath /tmp/501/mux-%h-%p-%r
(on my machine the socket file is in 502 – more similar tips here)