If you want to get anything done on a remote host, you use SSH.

Password-less SSH

Since I use SSH a lot, I've gone through the minimal effort required to setup password-less SSH between the computers on which I have accounts. Note that you should only keep private keys on computers that you trust (i.e. computers where you are the only admin).

I don't end up typing these commands very often, so I've created a set of three simple scripts (ssh-key.sh, ssh-remote.sh, and ssh-prime.sh), since ssh-<TAB> is easier to remember than the commands themselves. With the scripts in your path, run:

$ ssh-key.sh

to generate a SSH private/public keypair. Then run:

$ ssh-remote.sh me@remote.edu

to configure your remote.edu account to allow passwordless logins from your new key. After each login, run:

$ ssh-prime.sh

and enter your passphrase to start the SSH agent, and tell your shell about the agent with:

$ . /tmp/$(whoami)/.ssh/.ssh-agent-info-$(hostname)

I usually prime the SSH agent right after I log in (before running screen or startx) to that new terminals come up knowing about the agent. You can also add something like:

if [ -f "$SSH_INFO_FILE" ]; then
    . "$SSH_INFO_FILE"

to your ~/.bashrc (or equivalent shell initialization file), after which spawning shells will automatically pick up SSH agent information.

Grabbing a ssh-agent by process ID

If you clobber your ssh-agent environment somehow (or you want to “borrow” another user's agent to show them the security risks of running an agent on a computer that they don't own), ssh-agent-grab.sh will show you how to setup your environment:

$ ps -ef ssh-agent
jdoe     11862     1  0 Nov18 ?        00:00:01 ssh-agent
$ ssh-agent-grab.sh 4580
export SSH_AUTH_SOCK=/tmp/ssh-oTZLe11861/agent.11861
export SSH_AGENT_PID=11862
$ export SSH_AUTH_SOCK=/tmp/ssh-oTZLe11861/agent.11861
$ export SSH_AGENT_PID=11862
$ ssh jdoe@elsewhere


mxconns is a simple X monitor and proxy that I use to accept remote X connections when running MPE on my cluster. The mxconns post has more details if you're interested.


This sort of thing is the subject of innumerable websites, but due to the fluid nature of the web, they tend to disappear over time. Thanks to Ted Dustman (at the University of Utah in 2007) for his post (now missing). Still available related posts: