GNU/Linux >> Znalost Linux >  >> Linux

Automatizace klíče sestavení OpenVPN easy-rsa?

Řešení 1:

zkuste --dávka vlajka

./build-key --batch client1

Řešení 2:

Pokud se podíváte na zdroj build-key , zjistíte, že volá pkitool . Napsal jsem obal, abych shromáždil klíče klienta a příslušné konfigurační soubory openvpn do tarballu, který bych pak mohl dát svým uživatelům:

#!/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

Řešení 3:

Nová verze EasyRSA přichází jako jediný binární soubor právě teď. Pro automatizaci vytváření klientského klíče můžete nyní použít soubor "vars" (stačí jej umístit do stejného adresáře jako easyrsa binární):

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"

a použijte binární kód EasyRSA:

./easyrsa build-client-full client1 nopass

Řešení 4:

Nejrychleji mě napadá expect; umožňuje automatizovat tyto druhy interakcí příkazového řádku.

Řešení 5:

Měl jsem stejný problém.

Řešení, které jsem našel, bylo:

echo -en "\n\n\n\n\n\n\n\ny\ny\n" | ./build-key client1


Linux
  1. Zástupné znaky uvnitř uvozovek?

  2. ${!foo} A Zsh?

  3. Co dělá Echo $? Dělat??

  1. Jak nainstalovat a nakonfigurovat OpenVPN Server na Ubuntu 20.04

  2. Linuxový příkaz echo

  3. echo:příkaz nenalezen

  1. Jak nainstalovat OpenVPN na CentOS/RHEL 8

  2. Amazon Aws (amazon Ami) Instalace Openvpn?

  3. OpenVPN klient-klient