Add sshroot --- krbroot for ssh-agent
[user/alex/software/my-snippets.git] / sshroot
1 #!/bin/bash
2 export KRB5CCNAME=/tmp/krb5cc_$(id -u).root
3 export KRBTKFILE=/dev/null
4
5 lifetime=900
6 hostopt=""
7 [ -z "$hostopt" ] && hostopt="${HOSTNAME}"
8 [ -z "$hostopt" ] && hostopt=`uname -n 2>/dev/null || echo unknown`
9 keys=~/.ssh/id_rsa_root
10
11 function with-keys
12 {
13     unset SSH_AUTH_SOCK SSH_AGENT_PID
14     eval $(keychain --eval --host "$hostopt-root")
15     exec "$@"
16 }
17
18 case $1 in
19     init)
20         shift;
21         unset SSH_AUTH_SOCK SSH_AGENT_PID
22         echo exec keychain --host "$hostopt-root" $keys
23         ;;
24     add)
25         with-keys ssh-add -t $lifetime "$@"
26         ;;
27     destroy)
28         with-keys ssh-add -D
29         ;;
30     shell)
31         HOSTNAME="`hostname` (sshroot)" with-keys $SHELL
32         ;;
33     ssh)
34         shift
35         with-keys ssh -l root "$@"
36         ;;
37     *)
38         if [ $# = 0 ]; then
39             echo "Usage: $0 init" >&2
40             echo "       $0 add" >&2
41             echo "       $0 destroy" >&2
42             echo "       $0 shell" >&2
43             echo "       $0 ssh [args]" >&2
44             echo "       $0 [cmd]" >&2
45         else
46             with-keys "$@"
47         fi
48         ;;
49 esac