#!/bin/bash # _____ _ _ # | __|___ ___ ___ _| |___ _____| |_ ___ ___ ___ # | __| _| -_| -_| . | . | | . | . | | -_| # |__| |_| |___|___|___|___|_|_|_|___|___|_|_|___| # # Freedom in the Cloud # # monkeysphere functions # # License # ======= # # Copyright (C) 2014-2018 Bob Mottram # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . function install_monkeysphere { if [[ $(is_completed "${FUNCNAME[0]}") == "1" ]]; then return fi apt-get -yq install monkeysphere msva-perl #su -c "monkeysphere gen-subkey $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME mkdir "/home/$MY_USERNAME/.monkeysphere" chmod 755 "/home/$MY_USERNAME/.monkeysphere" echo "$MY_NAME <${MY_EMAIL_ADDRESS}>" > "/home/$MY_USERNAME/.monkeysphere/authorized_user_ids" chmod 644 "/home/$MY_USERNAME/.monkeysphere/authorized_user_ids" chown -R "$MY_USERNAME":"$MY_USERNAME" "/home/$MY_USERNAME/.monkeysphere" monkeysphere-authentication update-users if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then echo $'monkeysphere import: ssh host key not found' exit 76295 fi monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key "ssh://$DEFAULT_DOMAIN_NAME" SSH_ONION_HOSTNAME=$(grep 'ssh onion domain' "${COMPLETION_FILE}" | awk -F ':' '{print $2}') monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key "ssh://$SSH_ONION_HOSTNAME" if [ ! "$MY_GPG_PUBLIC_KEY_ID" ]; then MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_USERNAME@$HOSTNAME") if [ ${#MY_GPG_PUBLIC_KEY_ID} -lt 4 ]; then echo $"monkeysphere unable to get GPG key ID for user $MY_USERNAME@$HOSTNAME" exit 52825 fi fi # The admin user is the identity certifier fpr=$(gpg --with-colons --fingerprint "$MY_GPG_PUBLIC_KEY_ID" | grep fpr | head -n 1 | awk -F ':' '{print $10}') monkeysphere-authentication add-identity-certifier "$fpr" mark_completed "${FUNCNAME[0]}" } # NOTE: deliberately no exit 0