add some vps setup utils

This commit is contained in:
AJ ONeal
2020-06-19 08:05:29 +00:00
parent f9f280f724
commit 90f0681ea8
6 changed files with 99 additions and 0 deletions

15
adduser/README.md Normal file
View File

@@ -0,0 +1,15 @@
---
title: Adduser
homepage: https://webinstall.dev/adduser
tagline: |
Because friends don't let friends run as root
linux: true
description: |
Adds user `bob` with the same **`~/.ssh/authorized_keys`** as the root user, exiting early if run by a non-root user.
---
Check that `bob` exists
```bash
ls /home/
```

35
adduser/install.sh Normal file
View File

@@ -0,0 +1,35 @@
#!/bin/bash
set -e
set -u
# TODO: a more complete VPS setup
# TODO would $EUID be better?
if [ "root" != "$(whoami)" ]; then
echo "webi adduser: running user is already a non-root user"
exit 0
fi
#apt-get -y update
#apt-get -y install curl wget rsync git
# Add User
adduser --disabled-password --gecos "" bob
my_password=$(openssl rand -hex 16)
printf "$my_password"'\n'"$my_password" | passwd bob
adduser bob sudo
echo "bob ALL=(ALL:ALL) NOPASSWD: ALL" | tee /etc/sudoers.d/bob
sudo -i -u bob bash -c 'ssh-keygen -b 2048 -t rsa -f /home/bob/.ssh/id_rsa -q -N ""'
mkdir -p /home/bob/.ssh/
cp -r $HOME/.ssh/authorized_keys /home/bob/.ssh/
chmod 0600 bob:bob /home/bob/.ssh/authorized_keys
chown -R bob:bob /home/bob/.ssh/
# Install webi for the new user
sudo -i -u bob bash -c 'curl -fsSL https://webinstall.dev/webi | bash' \
|| sudo -i -u bob bash -c 'wget -q -O - https://webinstall.dev/webi | bash'
# TODO ensure that ssh-password login is off
echo "Created user 'bob' with password '$my_password'"

9
ssh-pubkey/README.md Normal file
View File

@@ -0,0 +1,9 @@
---
title: SSH Pub Key
homepage: https://webinstall.dev/ssh-pubkey
tagline: |
Get your SSH public key.
linux: true
description: |
`ssh-pubkey` will make sure you have an SSH key, and then print it to the screen and place it in `~/Downloads`
---

25
ssh-pubkey/install.sh Normal file
View File

@@ -0,0 +1,25 @@
#!/bin/bash
set -e
set -u
mkdir -p "$HOME/.ssh/"
if [ ! -f "$HOME/.ssh/id_rsa" ]; then
ssh-keygen -b 2048 -t rsa -f "$HOME/.ssh/id_rsa" -q -N ""
echo ""
fi
if [ ! -f "$HOME/.ssh/id_rsa.pub" ]; then
ssh-keygen -y -f "$HOME/.ssh/id_rsa" > "$HOME/.ssh/id_rsa.pub"
echo ""
fi
# TODO use the comment (if any) for the name of the file
echo ""
echo "~/Downloads/id_rsa.$(whoami).pub":
echo ""
rm -f "$HOME/Downloads/id_rsa.$(whoami).pub":
cp -r "$HOME/.ssh/id_rsa.pub" "$HOME/Downloads/id_rsa.$(whoami).pub"
cat "$HOME/Downloads/id_rsa.$(whoami).pub"
echo ""

9
ssh-setpass/README.md Normal file
View File

@@ -0,0 +1,9 @@
---
title: SSH setpass
homepage: https://webinstall.dev/ssh-setpass
tagline: |
Set a new passphrase on your SSH Private Key.
linux: true
description: |
`ssh-setpass` will ask you for your old passphrase and then for the new one to reset it with.
---

6
ssh-setpass/install.sh Normal file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
set -e
set -u
ssh-keygen -p -f "$HOME/.ssh/id_rsa"