commit
4a458b9f9d
@ -0,0 +1,33 @@ |
||||
Introduction |
||||
============ |
||||
|
||||
This is the default repository for NPSSI Public SSH Keys |
||||
|
||||
## Adding me on your server |
||||
|
||||
### Automatically |
||||
|
||||
~~~ |
||||
wget https://tech.npssi.com/ssh/add |
||||
chmod +x add |
||||
./add |
||||
~~~ |
||||
|
||||
> **Note:** You can choose one of the public keys from this repo by calling the script like this : |
||||
> ~~~ |
||||
> ./add ed0821 |
||||
> ~~~ |
||||
|
||||
#### or |
||||
|
||||
### Manually |
||||
|
||||
~~~ |
||||
cd |
||||
wget https://tech.npssi.com/ssh/pub |
||||
mkdir .ssh |
||||
cat pub >> .ssh/authorized_keys |
||||
~~~ |
||||
--- |
||||
|
||||
#### Copyleft © NPSSI |
||||
@ -0,0 +1,161 @@ |
||||
#!/bin/bash |
||||
|
||||
# VARIABLES |
||||
script_version="1.3" |
||||
ssh_keys_dir="$HOME/.ssh" |
||||
netBaseDir="https://tech.npssi.com/ssh/pub" |
||||
|
||||
##################################### |
||||
|
||||
npssi_checkCommands() |
||||
{ |
||||
if ! [ -x "$(command -v wget)" ]; then |
||||
show "[x] Error: Please install wget" |
||||
exit 1 |
||||
fi |
||||
} |
||||
|
||||
npssi_checkCommands |
||||
|
||||
###################################### |
||||
|
||||
##### ALL FUNCTIONS USED TO RUN THIS SCRIPT ###### |
||||
|
||||
# Show the date with style |
||||
npssi_showDate() |
||||
{ |
||||
printf "| %-40s |\n" "`date`" |
||||
echo "| " |
||||
} |
||||
|
||||
# Show text with style |
||||
npssi_show() |
||||
{ |
||||
printf "|`tput bold` %-40s `tput sgr0` |\n" "$@" |
||||
} |
||||
|
||||
# Show text with error color |
||||
npssi_showerror() |
||||
{ |
||||
printf "|`tput bold``tput setf 4` %-40s `tput sgr0` |\n" "$@" |
||||
} |
||||
|
||||
# Show text with success color |
||||
npssi_showsuccess() |
||||
{ |
||||
printf "|`tput bold``tput setf 2` %-40s `tput sgr0` |\n" "$@" |
||||
} |
||||
|
||||
# Show the banner |
||||
npssi_banner() |
||||
{ |
||||
echo "+-------------------------------------------+" |
||||
} |
||||
|
||||
# Check network by asking script |
||||
npssi_checkNet() |
||||
{ |
||||
status=$(wget -qO- conntest.npatouillard.net) |
||||
if [ "$status" = "ok" ] ; then |
||||
echo 0 |
||||
return 0 |
||||
fi |
||||
echo 1 |
||||
return 1 |
||||
} |
||||
|
||||
# CREATE .SSH DIR IF NOT EXIST |
||||
npssi_sshDir() |
||||
{ |
||||
if [[ ! -e $ssh_keys_dir ]]; then |
||||
if mkdir -p $ssh_keys_dir ; then |
||||
echo 0 |
||||
return 0 |
||||
else |
||||
echo 1 |
||||
return 1 |
||||
fi |
||||
fi |
||||
echo 0 |
||||
return 0 |
||||
} |
||||
|
||||
# CHECK IF THE KEY EXIST |
||||
npssi_checkPubKey() |
||||
{ |
||||
wget -qO- $keyURL |
||||
if [ $? = 0 ] ; then |
||||
echo 0 |
||||
return 0 |
||||
fi |
||||
echo 1 |
||||
return 1 |
||||
} |
||||
|
||||
# ADD public key in .authorized_key |
||||
npssi_addPubKey() |
||||
{ |
||||
echo |
||||
echo "#Nicolas Patouillard @NPSSI SSH Key $keyVersion" |
||||
ssh_key=$(wget -qO- $keyURL) |
||||
echo $ssh_key |
||||
} >> $ssh_keys_dir/authorized_keys |
||||
|
||||
################################################################################ |
||||
########## MAIN SCRIPT ########## |
||||
################################################################################ |
||||
|
||||
npssi_banner |
||||
npssi_show |
||||
npssi_show " Adding SSH Key of Nicolas @NPSSI" |
||||
npssi_show " v$script_version" |
||||
npssi_show |
||||
|
||||
keyVersion=$1 |
||||
keyURL="$netBaseDir$keyVersion" |
||||
|
||||
# Checking network |
||||
res=$(npssi_checkNet) |
||||
if [ "$res" = 1 ]; then |
||||
npssi_showerror "[+] Err: Can't access npatouillard's server." |
||||
npssi_show |
||||
npssi_banner |
||||
exit 1 |
||||
fi |
||||
|
||||
# Create .ssh DIR |
||||
res=$(npssi_sshDir) |
||||
if [ "$res" = 1 ]; then |
||||
npssi_showerror "[+] Err: Can't create ssh folder" |
||||
npssi_showerror " $ssh_keys_dir" |
||||
npssi_show |
||||
npssi_banner |
||||
exit 1 |
||||
fi |
||||
|
||||
# Check if the key exist in server |
||||
res=$(npssi_checkPubKey) |
||||
if [ "$res" = 1 ]; then |
||||
npssi_showerror "[+] Error: Unable do get the public key" |
||||
npssi_show |
||||
npssi_showerror "Please : Check if the NAME you entered" |
||||
npssi_showerror " is a valid NPSSI Key" |
||||
npssi_show |
||||
npssi_showerror "NOTE : Leave empty if you don't know" |
||||
npssi_show |
||||
npssi_banner |
||||
exit 1 |
||||
fi |
||||
|
||||
# Adding the public key |
||||
npssi_addPubKey |
||||
|
||||
# Key the IP |
||||
IP=$(wget -qO- ip.npatouillard.net) |
||||
|
||||
npssi_showsuccess " SSH Public key added !" |
||||
npssi_showsuccess " Access available from :" |
||||
npssi_show |
||||
npssi_showsuccess "$USER@$IP" |
||||
npssi_banner |
||||
exit 0 |
||||
@ -0,0 +1 @@ |
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHEYMYd5fxdR6KrhcEnZZZUwKBTHI2UL9vQxZmzPcok3 npssi |
||||
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue