>Synopsis:      sasyncd.conf parse error - "no shared key specified"
>Category:      user
>Environment:
        System      : OpenBSD 6.4
        Details     : OpenBSD 6.4 (GENERIC.MP) #7: Thu Feb 28 18:56:25 CET 2019

[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
        Architecture: OpenBSD.amd64
        Machine     : amd64
>Description:
Having an sasyncd.conf with the specific order of:
   (1) peer (one or more)
   (2) # a comment line, immediately followed by
   (3) a blank line
   (4) sharedkey

Causes this error:
config: no shared key specified, cannot continue

>How-To-Repeat:
Using the example sasyncd.conf, uncomment all its directives to make it valid:
root@obsd-amd64:~# sed -e 's/^#\([a-z]\)/\1/'
/etc/examples/sasyncd.conf > /tmp/sasyncd.conf
root@obsd-amd64:~# sasyncd -n -c /tmp/sasyncd.conf
configuration OK

Now, comment out the last 'peer' setting and it fails:
root@obsd-amd64:~# sed -i -e 's/\(.*10\.0\.0\.4\)/#\1/' /tmp/sasyncd.conf
root@obsd-amd64:~# sasyncd -n -c /tmp/sasyncd.conf
config: no shared key specified, cannot continue

Alternatively, leave the peer lines alone and insert a blank line
between the comment "# Shared AES key..." and the "sharedkey 0x..."
line and it will fail in the same way.  However, add -dvv and we see a
slight difference:
root@obsd-amd64:~# sasyncd -ndvv -c /tmp/sasyncd.conf
config: add peer 10.0.0.2
config: add peer 10.0.0.3
config: add peer 10.0.0.4
config: interface carp1
config: no shared key specified, cannot continue

In the "comment out peer 10.0.0.4" scenario, two lines are not printed:
root@obsd-amd64:~# sasyncd -ndvv -c /tmp/sasyncd.conf
config: add peer 10.0.0.2
config: add peer 10.0.0.3
config: no shared key specified, cannot continue

Through further testing with -dvv and reordering the file, it seems
that having a comment followed by a blank line anywhere after a peer
directive causes the rest of the file to be ignored; it's just that
sharedkey is the first thing it will complain about.  Comments
followed by blank lines _before_ any peer lines are fine.

>Fix:
        Unknown.

Workaround: don't have a comment followed by a blank line between
after any "peer" settings in your sasyncd.conf, which apparently
causes the rest of the file to be ignored.  Verify that the output of
sasyncd -ndvv matches what you expect.

I only encountered this by happening to comment out the last peer in
the list, which was followed by a blank line.  (I wasn't sure -- and
still am not, even after RTFMing several times -- whether or not to
include the server's own IP address in the list of peers.  If so, you
could use the same config file on all peers...)

Reply via email to