installer: install dns zone manager
diff --git a/core/installer/welcome/env.go b/core/installer/welcome/env.go
index 2c5d332..06ac89f 100644
--- a/core/installer/welcome/env.go
+++ b/core/installer/welcome/env.go
@@ -1,6 +1,7 @@
 package welcome
 
 import (
+	"bytes"
 	"embed"
 	"encoding/base64"
 	"encoding/json"
@@ -332,7 +333,7 @@
 		}
 	}
 	{
-		ssPubKey, err := ssClient.GetPublicKey()
+		ssPublicKeys, err := ssClient.GetPublicKeys()
 		if err != nil {
 			http.Error(w, err.Error(), http.StatusInternalServerError)
 			return
@@ -342,7 +343,7 @@
 			req,
 			strings.Split(ssClient.Addr, ":")[0],
 			keys,
-			ssPubKey,
+			ssPublicKeys,
 		); err != nil {
 			http.Error(w, err.Error(), http.StatusInternalServerError)
 			return
@@ -628,7 +629,7 @@
 	req createEnvReq,
 	repoHost string,
 	keys *keygen.KeyPair,
-	pcloudRepoPublicKey []byte,
+	configRepoPublicKeys []string,
 ) error {
 	kust, err := repoIO.ReadKustomization("environments/kustomization.yaml")
 	if err != nil {
@@ -639,6 +640,10 @@
 	if err != nil {
 		return err
 	}
+	var knownHosts bytes.Buffer
+	for _, key := range configRepoPublicKeys {
+		fmt.Fprintf(&knownHosts, "%s %s\n", repoHost, key)
+	}
 	for _, tmpl := range tmpls.Templates() {
 		dstPath := path.Join("environments", req.Name, tmpl.Name())
 		dst, err := repoIO.Writer(dstPath)
@@ -646,13 +651,14 @@
 			return err
 		}
 		defer dst.Close()
+
 		if err := tmpl.Execute(dst, map[string]string{
 			"Name":       req.Name,
 			"PrivateKey": base64.StdEncoding.EncodeToString(keys.RawPrivateKey()),
 			"PublicKey":  base64.StdEncoding.EncodeToString(keys.RawAuthorizedKey()),
 			"RepoHost":   repoHost,
 			"RepoName":   "config",
-			"KnownHosts": base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s %s", repoHost, pcloudRepoPublicKey))),
+			"KnownHosts": base64.StdEncoding.EncodeToString(knownHosts.Bytes()),
 		}); err != nil {
 			return err
 		}