johnandersen777.bsky.social/atlibs-iroh
iroh transport for atlibs hosts: com.fedfork.exec.iroh.connect in Rust (atlibs-host) and JavaScript
0
0
#cloud-config
{
"packages": [
"openssh-server"
],
"disable_root": false,
"ssh_pwauth": false,
"write_files": [
{
"path": "/root/.ssh/authorized_keys",
"owner": "root:root",
"permissions": "0600",
"content": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExample me@host\n"
},
{
"path": "/etc/ssh/sshd_config.d/10-iroh.conf",
"owner": "root:root",
"permissions": "0644",
"content": "PermitRootLogin prohibit-password\nPasswordAuthentication no\n"
},
{
"path": "/usr/local/bin/setup-iroh.sh",
"owner": "root:root",
"permissions": "0755",
"content": "#!/bin/bash\nset -euo pipefail\n[ -x /usr/local/bin/dumbpipe ] && exit 0\ncase \"$(uname -m)\" in x86_64|amd64) A=x86_64 ;; aarch64|arm64) A=aarch64 ;; *) exit 1 ;; esac\nURL=\"https://github.com/n0-computer/dumbpipe/releases/download/v0.38.0/dumbpipe-v0.38.0-linux-${A}.tar.gz\"\nT=\"$(mktemp -d)\"\nfor i in 1 2 3 4 5; do\n curl -fsSL \"${URL}\" | tar -xz -C \"${T}\" && install -m 0755 \"${T}/dumbpipe\" /usr/local/bin/dumbpipe && exit 0\n sleep 5\ndone\nexit 1\n"
},
{
"path": "/usr/local/bin/iroh-listener.sh",
"owner": "root:root",
"permissions": "0755",
"content": "#!/bin/bash\nset -euo pipefail\nSECRET_FILE=/root/.iroh-secret\nif [ ! -s \"${SECRET_FILE}\" ]; then\n umask 077\n head -c 32 /dev/urandom | od -An -tx1 | tr -d ' \\n' > \"${SECRET_FILE}\"\nfi\nexport IROH_SECRET=\"$(cat \"${SECRET_FILE}\")\"\nLOG=/run/guest-iroh.log\nrm -f /run/guest-iroh-ticket \"${LOG}\"\n/usr/local/bin/dumbpipe listen-tcp --host 127.0.0.1:22 2>>\"${LOG}\" &\nPID=$!\nTICKET=\"\"\nfor _ in $(seq 1 150); do\n TICKET=\"$(grep -a 'connect-tcp' \"${LOG}\" 2>/dev/null | tail -n 1 | awk '{print $NF}')\" || true\n [ -n \"${TICKET}\" ] && break\n kill -0 \"${PID}\" 2>/dev/null || break\n sleep 1\ndone\nif [ -n \"${TICKET}\" ]; then\n printf 'iroh://%s\\n' \"${TICKET}\" > /run/guest-iroh-ticket\n printf 'iroh://%s\\n' \"${TICKET}\" > /run/guest-fqdn.tmp\n mv -f /run/guest-fqdn.tmp /run/guest-fqdn\nfi\nwait \"${PID}\"\n"
},
{
"path": "/etc/systemd/system/iroh.service",
"owner": "root:root",
"permissions": "0644",
"content": "[Unit]\nDescription=iroh dumbpipe listener in front of local sshd\nAfter=network-online.target\nWants=network-online.target\n[Service]\nExecStart=/usr/local/bin/iroh-listener.sh\nRestart=always\nRestartSec=5\n[Install]\nWantedBy=multi-user.target\n"
}
],
"runcmd": [
"/usr/local/bin/setup-iroh.sh",
"systemctl daemon-reload",
"systemctl enable --now --no-block iroh.service",
"systemctl enable --now --no-block ssh || systemctl enable --now --no-block sshd"
]
}