1.223 Bytes hinzugefügt
, 23:43, 13. Dez. 2013
Um mit tincd keys zu generieren benutzt man generell:
tincd -K
Dann muss man aber manuell den Ort der beiden keys festlegen. Das ist recht hinderlich, wenn man viele Keys gleichzeitig generieren will.
Aber zum Glück gibt es [http://expect.sourceforge.net/ expect].
<source lang="bash">
#!/usr/bin/bash
for i in {1..31}
do
expect -c "spawn tincd -K" -c "expect \":\"" -c "send \"/root/tinc_keys/gate$i.priv\r\"" -c "expect \":\"" -c "send \"/root/tinc_keys/gate$i\r\"" -c "interact"
temp=$((i*4))
sed -i '1i Subnet=10.37.'"$temp"'.0\/22' /root/tinc_keys/gate$i
sed -i '1i Compression=0' /root/tinc_keys/gate$i
sed -i '1i Cipher=aes-128-cbc' /root/tinc_keys/gate$i
sed -i '1i Address=gate'"$i"'.freifunk-mainz.de' /root/tinc_keys/gate$i
done
</source>
Expect startet "spawn" tincd -K, wartet auf ein ":" und schreibt dann den pfad des private keys. Danach das selbe wie für den public key. "Interact" ist notwendig, damit die Key Generierung zu ende laufen kann. Damit man die public keys direkt als host definitionen im hosts ordner von tinc verwendet werden können, werden hier auch die sonstigen configs hinzugefügt, indem mit sed eine Zeile eingefügt wird.