• Lunes 23 de Diciembre de 2024, 17:29

Autor Tema:  Script para creación de archivos de conexión y PPK  (Leído 2985 veces)

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Script para creación de archivos de conexión y PPK
« en: Lunes 27 de Marzo de 2017, 19:02 »
0
Un script shell para crear un PPK desde Linux, sin necesidad de usar el puttygen de Windows

Código: C
  1. #!/bin/bash
  2. # RadicalEd
  3. # Genera clave de conexión ssh y archivo ppk
  4.  
  5. RED='\033[0;31m'
  6. GREEN='\033[1;32m'
  7. BLUE='\033[1;34m'
  8. NC='\033[0m'
  9. DIRSSH="$HOME/.ssh/"
  10. DIRPPK="$HOME/Documentos/proyectos/ppk/"
  11.  
  12. # Se verifica si existe la carpeta donde se guardarán los ppk
  13. if ! [ -d ${DIRPPK} ]; then
  14.    printf "La carpeta ${BLUE}${DIRPPK}${NC} no existe, será creada!\n\n"
  15.    mkdir -p "${DIRPPK}"
  16. fi
  17.  
  18. # Se comprobará si existen los programas ssh-keygen y puttygen
  19. if ! [ -x "/usr/bin/puttygen" ]; then
  20.     echo "Se debe tener instalado el programa puttygen"
  21.     exit 1;
  22. fi
  23. if ! [ -x "/usr/bin/ssh-keygen" ]; then
  24.     echo "Se debe tener instalado el programa ssh-keygen"
  25.     exit 1;
  26. fi
  27.  
  28. # En caso de que no pasen el usuario en los parametros se captura
  29. usuario=$1
  30. if [ -z ${usuario} ]; then
  31.     echo -n "Nombre de usuario del servidor ssh: "
  32.     printf "${BLUE}"
  33.     read usuario
  34.     printf "${NC}"
  35. fi
  36. echo "Se creará clave ssh y archivo ppk para el usuario ${GREEN} $usuario ${NC}"
  37.  
  38. # Generación de la clave pública y ppk
  39. ssh-keygen -t dsa -C $usuario -f ${DIRSSH}$usuario -q -N ""
  40. puttygen ${DIRSSH}$usuario -o ${DIRSSH}$usuario.ppk
  41.  
  42. # Se guarda en el path de los ppk
  43. mv ${DIRSSH}$usuario.ppk $DIRPPK
  44.  
  45. # Si desea entrar por ssh, se creará un alias en el bashrc
  46. echo -n "Desea crear un alias-ssh para entrar por consola (si/no)?: "
  47. printf "${BLUE}"
  48. read aliassh
  49. printf "${NC}"
  50. if [ "$aliassh" = "si" ]; then
  51.     echo -n "IP o nombre de servidor: "
  52.     printf "${BLUE}"
  53.     read servidor
  54.     printf "${NC}"
  55.  
  56.     echo "alias ssh$usuario='ssh -i $HOME/.ssh/$usuario $usuario@$servidor'" >> $HOME/.bashrc
  57.     #source $HOME/.bashrc
  58.     #exec bash
  59.  
  60.     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, "
  61. fi
  62. # Copiar contenido de la llave pública para copiar al servidor
  63. printf "debes copiar la siguiente llave en tu servidor $servidor\n\n$usuario:"
  64. cat ${DIRSSH}$usuario.pub
  65. printf "\n"
  66.  
  67. # Se elimina la clave pública creada
  68. rm -f ${DIRSSH}$usuario.pub
  69. exec bash
El pasado son solo recuerdos, el futuro son solo sueños