If you're like me, you probably end up working a lot on remote systems. It can be a pain to manage your settings on them. I think we all have a way of dealing with this. Ideally, we'd all manage our dot files in some publicly accessible source control. If you're a mere mortal like me, though, you just want a way to copy your dot files to the remote system and install your ssh key.
If so, then the following snippit from my .zshrc may be helpful to you. It's been tested with zsh, but probably works just fine in .bashrc. If you add to your .zshrc, remember to re-source that file or re-login. Edit to suit your tastes:
If so, then the following snippit from my .zshrc may be helpful to you. It's been tested with zsh, but probably works just fine in .bashrc. If you add to your .zshrc, remember to re-source that file or re-login. Edit to suit your tastes:
# Install my ssh key on a remote system.
ssh-installkey() {
[ -n "$1" ] || {
echo "usage: ssh-installkey username@host" >&2
return 1
}
ssh $1 "mkdir -p -m 700 .ssh"
ssh $1 "cat >> ~/.ssh/authorized_keys2" < ~/.ssh/id_dsa.pub
}
# Install some basic settings on the remote system for things like zsh, vim,
# and screen. Then, try to change shells.
#
# This does not call ssh-installkey because that command should not be executed
# multiple times. Call it first.
ssh-installsettings() {
[ -n "$1" ] || {
echo "usage: ssh-installsettings username@host" >&2
return 1
}
scp -r \
.zlogin .zshenv .zshrc \
.vim .vimrc \
.screenrc \
$1:
echo "Attempting to set login shell." >&2
ssh $1 "chsh -s /usr/bin/zsh"
}
Comments
authorized_keys for now as it's what is in my machines ...
This version works with bash, and makes me realize that connection to that HP box wasn't working since I didn't have any key there !!
This version needs to type twice the keyword, while the verbose ssh-copy-id command needs only one password :)
# Install my ssh key on a remote system.
ssh-installkey() {
test -n "$1" || {
echo "usage: ssh-installkey username@host" >&2
return 1
}
test -f $HOME/.ssh/id_rsa.pub || {
echo "You need a rsa public key. Run ssh-keygen to do that." >&2
return 1
}
ssh $1 "mkdir -p -m 700 .ssh"
ssh $1 "cat >> ~/.ssh/authorized_keys" < $HOME/.ssh/id_rsa.pub
}
1. Check that SVN is installed.
2. 'svn co URL_to_my_SVN_repo ~/.user_cfg'
3. '~/.user_cfg/_tools/post_svn'
4. Log out and back in again.
Then I can enjoy my command line experience :-)