GNU/Linux >> Tutoriales Linux >  >> Linux

¿Automatización de clave de compilación de OpenVPN easy-rsa?

Solución 1:

prueba --batch bandera

./build-key --batch client1

Solución 2:

Si miras la fuente de build-key , encontrará que está llamando a pkitool . Escribí un contenedor para agrupar las claves del cliente y los archivos de configuración de openvpn apropiados en un tarball que luego podría dar a mis usuarios:

#!/bin/bash

client=$1

if [ x$client = x ]; then
    echo "Usage: $0 clientname"
    exit 1
fi

if [ ! -e keys/$client.key ]; then
    echo "Generating keys..."
    . vars
    ./pkitool $client
    echo "...keys generated." 
fi

tarball=./keys/$client.tgz

if [ ! -e $tarball ]; then
    echo "Creating tarball..."
    tmpdir=/tmp/client-tar.$$
    mkdir $tmpdir
    cp company.ovpn $tmpdir/company.ovpn
    cp keys/ca.crt $tmpdir 
    cp keys/$client.key $tmpdir/client.key
    cp keys/$client.crt $tmpdir/client.crt
    tar -C $tmpdir -czvf $tarball .
    rm -rf $tmpdir
    echo "...tarball created" 
else
    echo "Nothing to do, so nothing done. (keys/$client.tgz already exists)" 
fi

Solución 3:

La nueva versión de EasyRSA viene como un solo binario en este momento. Para automatizar la creación de una clave de cliente, ahora puede usar el archivo "vars" (simplemente colóquelo en el mismo directorio que easyrsa binary):

if [ -z "$EASYRSA_CALLER" ]; then
    echo "You appear to be sourcing an Easy-RSA 'vars' file." >&2
    echo "This is no longer necessary and is disallowed. See the section called" >&2
    echo "'How to use this file' near the top comments for more details." >&2
    return 1
fi

set_var EASYRSA        "$PWD"
set_var EASYRSA_OPENSSL        "openssl"
set_var EASYRSA_PKI            "$EASYRSA/pki"
set_var EASYRSA_DN     "org"

set_var EASYRSA_REQ_COUNTRY    "Country"
set_var EASYRSA_REQ_PROVINCE   "Province"
set_var EASYRSA_REQ_CITY       "City"
set_var EASYRSA_REQ_ORG        "Org Ltd"
set_var EASYRSA_REQ_EMAIL      "[email protected]"
set_var EASYRSA_REQ_OU         "Infrastructure"

set_var EASYRSA_KEY_SIZE       2048

set_var EASYRSA_ALGO           rsa

set_var EASYRSA_CA_EXPIRE      3650
set_var EASYRSA_CERT_EXPIRE    365
set_var EASYRSA_CRL_DAYS       180

set_var EASYRSA_TEMP_FILE      "$EASYRSA_PKI/extensions.temp"

y usa el binario de EasyRSA:

./easyrsa build-client-full client1 nopass

Solución 4:

Lo que me viene a la mente más rápido es expect; le permite automatizar este tipo de interacciones de línea de comandos.

Solución 5:

Tuve el mismo problema.

La solución que encontré fue:

echo -en "\n\n\n\n\n\n\n\ny\ny\n" | ./construir clave cliente1


Linux
  1. ¿Comodines dentro de las comillas?

  2. ${!foo} ¿Y Zsh?

  3. ¿Qué hace Echo $? ¿¿Hacer??

  4. ¿Usando exportar en .bashrc?

  5. ¿Cambiar fuente en Echo Command?

16 ejemplos de comandos de eco en Linux

Cómo instalar el servidor y cliente OpenVPN con Easy-RSA 3 en CentOS 7

Cómo instalar el servidor y cliente OpenVPN con Easy-RSA 3 en CentOS 8

Cómo instalar OpenVPN en AlmaLinux 8, Centos 8 o Rocky Linux 8

Cómo hacer eco en un archivo

Ejemplos de comandos echo en Linux