SSH - Secure Shell
The ssh
command allows for connecting to remote machines to run
programs and transfer files.
Talks
Working Remotely With SSH (Chicago.PM 2018)
This talk introduces SSH to anyone who isn't familiar and demonstrates the basic use-cases of logging in, generating and using SSH keys, transferring files over SSH, and running the SSH agent.
There is also some discussion of the SSH config file, how SSH agent forwarding works (and why to use it), and how to set up SSH tunnels (and why).
This is a good exploration of the basics of SSH needed to get useful work done, and an introduction to some of the more useful advanced SSH features.
Presenter's Notes
This talk went well and lasted about an hour. The section explaining symmetric and asymmetric cryptography was extraneous and irrelevant and resulted in a lengthy digression. I don't know enough about them to explain them, and that's often seen as an invitation for someone else to do so (despite it being very clearly not relevant). This part should be removed from future talks.
Errata: The ssh-copy-id
is not part of the OpenSSH distribution, and
is a shell script that Linux and MacOS include for ease-of-use.
External Resources
Related Topics
tmux - Terminal Multiplexer
Using Tmux on a system you've logged in to with SSH allows you to run programs without worrying about your programs being stopped if you get disconnected. The programs you run inside a Tmux session will remain running, and you can re-connect to the server and re-attach to your Tmux session.
Often my first step after logging in to a machine is running a Tmux session just in case.
screen - Terminal Window Manager
Much like Tmux, screen lets you run programs, disconnect from the server, and then reconnect later to continue your work.
rsync - Advanced file transfer
The rsync command uses SSH (and other
protocols) to synchronize files between servers. This is a more powerful
tool than scp
for tasks like mirroring data and backups.