GNU/Linux >> Belajar Linux >  >> Linux

Otomatisasi build-key OpenVPN easy-rsa?

Solusi 1:

coba --batch bendera

./build-key --batch client1

Solusi 2:

Jika Anda melihat sumber build-key , Anda akan menemukannya memanggil pkitool . Saya menulis pembungkus untuk menggabungkan kunci cilent dan file konfigurasi openvpn yang sesuai ke dalam tarball yang kemudian dapat saya berikan kepada pengguna saya:

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

Solusi 3:

Versi baru EasyRSA hadir sebagai biner tunggal saat ini. Untuk membuat kunci klien secara otomatis, Anda sekarang dapat menggunakan file "vars" (cukup letakkan di direktori yang sama dengan 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"

dan gunakan biner EasyRSA:

./easyrsa build-client-full client1 nopass

Solusi 4:

Hal yang paling cepat muncul di benak saya adalah expect; ini memungkinkan Anda mengotomatiskan interaksi baris perintah semacam ini.

Solusi 5:

Saya memiliki masalah yang sama.

Solusi yang saya temukan adalah :

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


Linux
  1. Cara Menginstal OpenVPN di CentOS/RHEL 8

  2. Wildcard Di Dalam Kutipan?

  3. ${!foo} Dan Zsh?

  1. Amazon Aws (amazon Ami) Menginstal Openvpn?

  2. Menggunakan Ekspor Di .bashrc?

  3. Ubah Font Di Perintah Gema?

  1. Apa yang Digema $? Mengerjakan??

  2. Cara Mengatur Server OpenVPN di Debian 10

  3. echo:perintah tidak ditemukan