#!/usr/bin/env bash playbook_add() { pkg install "mosh" mkdir -pv "/etc/ssh" svc enable "sshd" svc start "sshd" playbook_sync } playbook_sync() { info "$BASHTARD_PLAYBOOK" "Templating sshd_config" file_template "sshd_config" \ "sftp=$(config "ssh.sftp")" \ > /etc/ssh/sshd_config # Generate stronger keys if needed if (( $(ssh_key_size "$(config "fs.etcdir")/ssh/ssh_host_rsa_key") < 4096 )) then warn "$BASHTARD_PLAYBOOK" "Generating new RSA SSH host key" rm -f -- "$(config "fs.etcdir")/ssh/ssh_host_rsa_key" ssh-keygen -t rsa -b 4096 -f "$(config "fs.etcdir")/ssh/ssh_host_rsa_key" -N "" fi info "$BASHTARD_PLAYBOOK" "Generating MotD" file_template "motd" \ "fqdn=${BASHTARD_PLATFORM[fqdn]}" \ "time=$(date -u "+%FT%T")" \ > /etc/motd info "$BASHTARD_PLAYBOOK" "Installing notification script" file_template "notify.sh" \ > /etc/ssh/notify.sh [[ $BASHTARD_COMMAND == "add" ]] && return svc reload "sshd" } playbook_del() { svc stop "sshd" svc disable "sshd" } ssh_key_size() { if [[ ! -f "$1" ]] then printf "0" return fi ssh-keygen -l -f "$1" | awk '{ print $1 }' }