Symptom: @@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@}
Fix:
\begin{lstlisting}[style=mystyle]
ssh-keygen -R <hostname>
\end{lstlisting}
This occurs when a host was re-imaged with the same IP. Check /etc/ssh/ssh\_config.d/} for stale entries.
Symptom: TCP port 22 is reachable but SSH returns "Permission denied".
Common causes:
Fix: Add the openclaw ed25519 key to the target host's authorized\_keys file. The pubkey is:
\begin{lstlisting}[style=mystyle]
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJb9mV02PpxD8VpzYCnu7192dTwMnGWUc3qh55BIeElN openclaw@chonk
\end{lstlisting}
Symptom: SSH hangs or returns "No route to host". The host is likely powered off. Common in Jetson nodes (node902, etc.) that are manually managed.
Symptom: SSH times out waiting for GSSAPI authentication before falling back to key auth.
Fix: Add to ~/.ssh/config}:
\begin{lstlisting}[style=mystyle]
Host *
GSSAPIAuthentication no
IdentitiesOnly yes
IdentityFile ~/.ssh/id_ed25519_openclaw
\end{lstlisting}
tabularx}{}{l X}
<strong>Symptom</strong> & <strong>Likely Cause</strong> \\
kinit fails with "clock skew" & NTP not synced -- check time.host first\\
kinit fails with "KDC has no support for encryption type" & Wrong krb5.conf realm or KDC unavailable\\
kadmin.local works but kadmin (remote) fails & Port 749 firewall rule on odroid-c1\\
Ticket expired after reboot & Time drift during host downtime
tabularx}
Verify: klist}, kinit username@LAB.BITSMASHER.NET}, ktutil} for keytabs.
tabularx}{}{l X}
<strong>Symptom</strong> & <strong>Likely Cause</strong> \\
ntpd not running & ntpsec service not enabled\\
"no server suitable for synchronization" & No upstream reachable (time host offline)\\
Clock gradually drifting & Missing driftfile or Jetson oscillator drift\\
Time jumps by several seconds & Large correction applied; step-sync mode engaged
tabularx}
Verify: ntpq -p}, timedatectl}, check /var/log/ntpstats/.
tabularx}{}{l X}
<strong>Symptom</strong> & <strong>Likely Cause</strong> \\
mount hangs & NFS server unreachable or export doesn't list client\\
"Stale file handle" & Server-side data was deleted/recreated\\
Permission denied on mount & /etc/exports restricts the client IP
tabularx}
Verify: showmount -e <server>}, check NFS server's exports, verify client IP matches the export rule.
\begin{lstlisting}[style=mystyle]
ansible-galaxy collection install lab.franklin
# or for individual modules:
ansible-galaxy collection install community.general
\end{lstlisting}
If molecule tests fail on a new host, the most common causes are:
When a service is down, work through this checklist:
\begin{lstlisting}[style=mystyle]
# Check if a host is reachable from chonk
ping -c 1 <hostname>
ssh -o ConnectTimeout=5 openclaw@<host> "echo alive"
# Check service status remotely
ssh openclaw@<host> "systemctl status <service>"
# Verify time sync across hosts
for host in stargate skynet chonk; do
ssh openclaw@$host "timedatectl | grep synchronized"
done
# Verify DNS resolution from a client
dig @time.lab.bitsmasher.net <hostname>
# Check Kerberos auth
kinit username@LAB.BITSMASHER.NET
klist
\end{lstlisting}