diff --git a/.gitignore b/.gitignore
index 62601940c8c478df7813d1d153a28d874c37bddf..4b9f3e04044e4c43e620ac3408c9379a1d0e51da 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,4 @@ resources/
 .vercel/
 auth.json
 .vercel
+*.pem
diff --git a/api/activitypub/inbox.ts b/api/activitypub/inbox.ts
index 8465e77b562c7682fc713e87c6ad32f216718ca7..5357d5b76a2d211d3a36eaf4ed5ec0bfaaa253ed 100644
--- a/api/activitypub/inbox.ts
+++ b/api/activitypub/inbox.ts
@@ -77,6 +77,7 @@ export default async function (req: VercelRequest, res: VercelResponse) {
     res.end("ok");
 
     const actorInbox = new URL(<URL>actorInformation.inbox);
+    console.log("sending follow accept: ", actorInbox, acceptRequest);
     const response = await sendSignedRequest(actorInbox, acceptRequest);
     console.log("Following result", response.status, response.statusText, await response.text());
     return;
diff --git a/generateKeys.mts b/generateKeys.mts
index 6e47d2db674372e56c7103d8115b0e2a6fef512b..2502ec84231d15c4558f8b8b2243d444363e653a 100644
--- a/generateKeys.mts
+++ b/generateKeys.mts
@@ -15,6 +15,6 @@ const pair = await generateKeyPairAsync('rsa', {
   }
 })
 
-console.log(pair.publicKey.toString().replaceAll('\n', '\\n'));
+console.log(pair.publicKey.toString());
 
-console.log(pair.privateKey.toString().replaceAll('\n', '\\n'));
+console.log(pair.privateKey.toString());
diff --git a/genkeys.sh b/genkeys.sh
new file mode 100644
index 0000000000000000000000000000000000000000..a7bfbd1f053a88045ab6fb4e93dedc85466ee55f
--- /dev/null
+++ b/genkeys.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+openssl genrsa -out private.pem 2048
+openssl rsa -in private.pem -outform PEM -pubout -out public.pem
+
+PRIVATE_KEY=`cat private.pem`
+PUBLIC_KEY=`cat public.pem`
+
+#PUBLIC_KEY_CLEAN="${PUBLIC_KEY//$'\n'/'\n'}"
+#PRIVATE_KEY_CLEAN="${PRIVATE_KEY//$'\n'/'\n'}"
+
+echo
+echo "$PRIVATE_KEY"
+echo
+echo "$PUBLIC_KEY}"
+echo