SHOW:
|
|
- or go back to the newest paste.
| 1 | #!/usr/bin/env bash | |
| 2 | key_name="id_gitosis" | |
| 3 | key_location="$HOME/.ssh" | |
| 4 | ssh_conf_dir="$HOME/.ssh" | |
| 5 | - | server="icaruscreations.com" |
| 5 | + | server="example.com" |
| 6 | ||
| 7 | echo "keyname '${key_name}'"
| |
| 8 | echo "key location: '${key_location}'"
| |
| 9 | ||
| 10 | function must_accept | |
| 11 | {
| |
| 12 | question="${1} (y/abort)"
| |
| 13 | echo ${question}
| |
| 14 | read -r | |
| 15 | ans=$REPLY #must save it or I can only use it once | |
| 16 | until [ "$ans" = "y" ]; do | |
| 17 | if [ "$ans" = "abort" ];then | |
| 18 | echo "aborting as commanded..." | |
| 19 | exit 1 | |
| 20 | fi | |
| 21 | echo "valid answers: 'abort', 'y'" | |
| 22 | echo ${question}
| |
| 23 | read -r | |
| 24 | ans=$REPLY | |
| 25 | done | |
| 26 | } | |
| 27 | ||
| 28 | echo "Warning! Warning!" | |
| 29 | must_accept "Will overwrite *everything* in ${ssh_conf_dir}/config"
| |
| 30 | (cat <<- :EOF: | |
| 31 | Host icgit | |
| 32 | - | HostName icaruscreations.com |
| 32 | + | HostName ${server}
|
| 33 | User git | |
| 34 | IdentityFile ${key_location}/${key_name}
| |
| 35 | ||
| 36 | :EOF: | |
| 37 | ) > ${ssh_conf_dir}/config
| |
| 38 | ||
| 39 | echo "removing earlier keys" | |
| 40 | rm -rf ${key_location}/${key_name}
| |
| 41 | rm -rf ${key_location}/${key_name}.pub
| |
| 42 | ||
| 43 | echo "[Generating Key]..." | |
| 44 | ssh-keygen -t rsa -f ${key_location}/${key_name} || exit
| |
| 45 | echo "[Adding key to keyring]" | |
| 46 | ssh-add ${key_location}/${key_name}
| |
| 47 | ||
| 48 | echo "[Uploading key to server]" | |
| 49 | scp ${key_location}/${key_name}.pub root@${server}:/root/admin-acc-ssh-key.pub.$$ || exit
| |
| 50 | ||
| 51 | ssh root@${server} << *
| |
| 52 | apt-get remove -y --purge gitosis | |
| 53 | rm -rf /srv/gitosis | |
| 54 | userdel git | |
| 55 | rm -rf /home/git | |
| 56 | apt-get install -y gitosis | |
| 57 | adduser --system --shell /bin/sh --gecos 'Git' --group --disabled-password --home /home/git git | |
| 58 | sudo -H -u git gitosis-init < admin-acc-ssh-key.pub.$$ | |
| 59 | userdel gitosis | |
| 60 | rm admin-acc-ssh-key.pub.$$ | |
| 61 | exit | |
| 62 | * | |
| 63 | echo "checking out admin repo - type ssh key password again plix" | |
| 64 | ( | |
| 65 | cd /tmp | |
| 66 | rm -rf gitosis-admin | |
| 67 | git clone git@${server}:gitosis-admin.git
| |
| 68 | ) |