Created
August 23, 2020 13:27
-
-
Save gamorales/72c7c6f9dd1266760cdbd48d91a5395f to your computer and use it in GitHub Desktop.
Generate a ppk file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# RadicalEd | |
# Genera clave de conexión ssh y archivo ppk | |
RED='\033[0;31m' | |
GREEN='\033[1;32m' | |
BLUE='\033[1;34m' | |
NC='\033[0m' | |
DIRSSH="$HOME/.ssh/" | |
DIRPPK="$HOME/Documentos/proyectos/ppk/" | |
# Se verifica si existe la carpeta donde se guardarán los ppk | |
if ! [ -d ${DIRPPK} ]; then | |
printf "La carpeta ${BLUE}${DIRPPK}${NC} no existe, será creada!\n\n" | |
mkdir -p "${DIRPPK}" | |
fi | |
# Se comprobará si existen los programas ssh-keygen y puttygen | |
if ! [ -x "/usr/bin/puttygen" ]; then | |
echo "Se debe tener instalado el programa puttygen" | |
exit 1; | |
fi | |
if ! [ -x "/usr/bin/ssh-keygen" ]; then | |
echo "Se debe tener instalado el programa ssh-keygen" | |
exit 1; | |
fi | |
# En caso de que no pasen el usuario en los parametros se captura | |
usuario=$1 | |
if [ -z ${usuario} ]; then | |
echo -n "Nombre de usuario del servidor ssh: " | |
printf "${BLUE}" | |
read usuario | |
printf "${NC}" | |
fi | |
echo "Se creará clave ssh y archivo ppk para el usuario ${GREEN} $usuario ${NC}" | |
# Generación de la clave pública y ppk | |
#ssh-keygen -t dsa -C $usuario -f ${DIRSSH}$usuario -q -N "" | |
ssh-keygen -b 4096 -t rsa -C $usuario -f ${DIRSSH}$usuario -q -N "" | |
puttygen ${DIRSSH}$usuario -o ${DIRSSH}$usuario.ppk -P | |
# Se guarda en el path de los ppk | |
mv ${DIRSSH}$usuario.ppk $DIRPPK | |
# Si desea entrar por ssh, se creará un alias en el bashrc | |
echo -n "Desea crear un alias-ssh para entrar por consola (si/no)?: " | |
printf "${BLUE}" | |
read aliassh | |
printf "${NC}" | |
if [ "$aliassh" = "si" ]; then | |
echo -n "IP o nombre de servidor: " | |
printf "${BLUE}" | |
read servidor | |
printf "${NC}" | |
echo "alias ssh$usuario='ssh -i $HOME/.ssh/$usuario $usuario@$servidor'" >> $HOME/.bashrc | |
#source $HOME/.bashrc | |
#exec bash | |
printf "\nSe creó un nuevo alias, lo puedes usar con el comando ${GREEN}ssh$usuario${NC}\n\nRecuerda que antes de poder usar el alias, " | |
fi | |
# Copiar contenido de la llave pública para copiar al servidor | |
printf "debes copiar la siguiente llave en tu servidor $servidor\n\n$usuario:" | |
cat ${DIRSSH}$usuario.pub | |
printf "\n" | |
# Se elimina la clave pública creada | |
rm -f ${DIRSSH}$usuario.pub | |
exec bash |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment