Adding ssh keys via the user control panel
This commit is contained in:
parent
caaaeac537
commit
021f5f9921
|
@ -410,6 +410,41 @@ function remove_gpg_key {
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_ssh_key {
|
function add_ssh_key {
|
||||||
|
data=$(tempfile 2>/dev/null)
|
||||||
|
trap "rm -f $data" 0 1 2 5 15
|
||||||
|
dialog --title $"Add your ssh public key" \
|
||||||
|
--backtitle $"Freedombone User Control Panel" \
|
||||||
|
--inputbox $"This will allow you to log into Freedombone if you have an ssh key on your system, and provides much stronger security than simply using a login password.\n\nWARNING: If you make any mistakes here then you may not be able to log in and will need to get the administrator to clear your ssh authorized_keys file." 15 60 2>$data
|
||||||
|
sel=$?
|
||||||
|
case $sel in
|
||||||
|
0)
|
||||||
|
SSH_PUBLIC_KEY=$(<$data)
|
||||||
|
if [ ${#SSH_PUBLIC_KEY} -gt 20 ]; then
|
||||||
|
if [[ "$SSH_PUBLIC_KEY" == "ssh-"* ]]; then
|
||||||
|
if [ ! -d /home/$USER/.ssh ]; then
|
||||||
|
mkdir /home/$USER/.ssh
|
||||||
|
fi
|
||||||
|
if [ ! -f /home/$USER/.ssh/authorized_keys ]; then
|
||||||
|
touch /home/$USER/.ssh/authorized_keys
|
||||||
|
fi
|
||||||
|
if ! grep -q "$SSH_PUBLIC_KEY" /home/$USER/.ssh/authorized_keys; then
|
||||||
|
echo "$SSH_PUBLIC_KEY" >> /home/$USER/.ssh/authorized_keys
|
||||||
|
dialog --title $"New ssh key added" \
|
||||||
|
--backtitle $"Freedombone User Control Panel" \
|
||||||
|
--msgbox $"Your ssh key has now been added" 6 50
|
||||||
|
else
|
||||||
|
dialog --title $"ssh key already added" \
|
||||||
|
--backtitle $"Freedombone User Control Panel" \
|
||||||
|
--msgbox $"That ssh key has already been added" 6 50
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
dialog --title $"Unrecognised ssh public key" \
|
||||||
|
--backtitle $"Freedombone User Control Panel" \
|
||||||
|
--msgbox $"This doesn't look like an ssh key" 6 50
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
function remove_ssh_key {
|
function remove_ssh_key {
|
||||||
|
|
Loading…
Reference in New Issue