summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid T. Sadler <davidtsadler@googlemail.com>2020-06-09 17:18:32 +0100
committerDavid T. Sadler <davidtsadler@googlemail.com>2020-06-09 17:18:32 +0100
commit0562e731ab8781343058bae40b7f21a0cbda7c97 (patch)
tree3a291d30f213491e6113b1dbdf3badefc959d179
parente5a682fd78af274e0c9ade031e79c9d537a938df (diff)
Prompt for GitHub SSH keys
-rw-r--r--gohan.sh31
1 files changed, 30 insertions, 1 deletions
diff --git a/gohan.sh b/gohan.sh
index bd9f7d3..409ca93 100644
--- a/gohan.sh
+++ b/gohan.sh
@@ -61,7 +61,33 @@ add_user() {
unset pass1 pass2
}
-maininstall() {
+get_github_ssh_keys() {
+ # Prompts user for private and public ssh keys for connecting to GitHub.
+ touch /tmp/emptyfile
+ dialog --title "SSH" --msgbox "You will be prompted to enter the private SSH key used to connect to GitHub" 10 60
+ githubPrivateKey=$(dialog --editbox /tmp/emptyfile 60 60 3>&1 1>&2 2>&3 3>&1) || exit
+ dialog --title "SSH" --msgbox "You will know be prompted to enter the public SSH key used to connect to GitHub" 10 60
+ githubPublicKey=$(dialog --editbox /tmp/emptyfile 10 60 3>&1 1>&2 2>&3 3>&1)
+ rm /tmp/emptyfile
+}
+
+save_github_ssh_keys() {
+ [ ! -d "/home/$name/.ssh" ] && mkdir -p "/home/$name/.ssh/github.com"
+ echo "$githubPrivateKey" > "/home/$name/.ssh/github.com/id_rsa"
+ echo "$githubPublicKey" > "/home/$name/.ssh/github.com/id_rsa.pub"
+ cat << EOF > "/home/$name/.ssh/config"
+Host github.com
+ IdentityFile /home/${name}/.ssh/github.com/id_rsa
+EOF
+ chown -R "$name":"$name" "/home/$name/.ssh"
+ chmod 700 "/home/$name/.ssh"
+ chmod 644 "/home/$name/.ssh/config"
+ chmod 700 "/home/$name/.ssh/github.com"
+ chmod 600 "/home/$name/.ssh/github.com/id_rsa"
+ chmod 644 "/home/$name/.ssh/github.com/id_rsa.pub"
+}
+
+maininstall() {
dialog --title "GOHAN Installation" --infobox "Installing \`$1\` ($n of $total). $1 $2" 5 70
install_package "$1"
}
@@ -90,6 +116,9 @@ preinstall_msg || error "User exited."
add_user || error "Error adding username and/or password."
+get_github_ssh_keys || error "Error getting the GitHub SSH keys."
+save_github_ssh_keys || error "Error saving the GitHub SSH keys."
+
install_packages
clear