Change add command to use public key as optional param

This commit is contained in:
Paul-Christian Volkmer 2022-12-17 09:44:40 +01:00
parent 133c466c26
commit 1bb1be36f8
3 changed files with 35 additions and 3 deletions

View File

@ -83,6 +83,24 @@ $ docker-compose run wg add
This will create new client configuration and adds peer configuration to server config file. Restart service. This will create new client configuration and adds peer configuration to server config file. Restart service.
To add a client with existing public key run
```
$ docker-compose run wg add <given public key>
```
and replace `<given public key>` in command with public key created using `wg genkey`.
The created client config will contain a placeholder for clients secret key in interface config.
```
...
[Interface]
Address = 192.168.42.123/24
ListenPort = 51820
PrivateKey = <place secret key here>
...
```
### Remove client ### Remove client
Stop the service and run Stop the service and run

View File

@ -15,8 +15,13 @@ if [ -z $CLIENT_ID ]; then
exit 1 exit 1
fi fi
if [ -z $1 ]; then
CLIENT_SEC_KEY=$(wg genkey) CLIENT_SEC_KEY=$(wg genkey)
CLIENT_PUB_KEY=$(echo $CLIENT_SEC_KEY | wg pubkey) CLIENT_PUB_KEY=$(echo $CLIENT_SEC_KEY | wg pubkey)
else
CLIENT_SEC_KEY="<place secret key here>"
CLIENT_PUB_KEY=$1
fi
# Add peer config # Add peer config
cat << EOF >> $DEVICE.conf cat << EOF >> $DEVICE.conf
@ -53,4 +58,8 @@ AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = $SERVER_HOST:$SERVER_PORT Endpoint = $SERVER_HOST:$SERVER_PORT
EOF EOF
if [ -z $1 ]; then
echo "Added Client # $CLIENT_ID" echo "Added Client # $CLIENT_ID"
else
echo "Added Client # $CLIENT_ID with existing public key"
fi

View File

@ -13,6 +13,11 @@ case "$1" in
exit 0 exit 0
;; ;;
'add-client' | 'add') 'add-client' | 'add')
if [ ! -z $2 ]; then
cd /etc/wireguard
/scripts/add-client.sh $2
exit 0
fi
cd /etc/wireguard cd /etc/wireguard
/scripts/add-client.sh /scripts/add-client.sh
exit 0 exit 0