Troubleshooting SSH
What each failure means, and the shortest way out of it.
Permission denied (publickey)
Your client offered no key Ghost recognises.
ssh -vT -p 1031 git@<host>Read the Offering public key: lines. If yours is missing, the agent does not
have it:
ssh-add -l
ssh-add ~/.ssh/id_ed25519If it was offered and still refused, the key is not on your account — compare
ssh-keygen -lf ~/.ssh/id_ed25519.pub with the fingerprint in
Settings → Security.
Connection refused
Nothing is listening. Either the port is wrong — it is 1031 unless the
instance says otherwise — or the instance runs without SSH, in which case use
the HTTP clone URL.
ghost: Repository not found
The repository does not exist, or it is private and not yours. A private repository you cannot read is reported as missing on purpose, so this message never confirms one exists.
ghost: I only speak git
You sent something that is not git-upload-pack or git-receive-pack. Ghost
runs no other command, so there is nothing to fix beyond the command you typed.
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED
The server's host key is not the one your machine recorded. Ask whoever runs the instance whether it was rotated. If it was, remove the stale entry:
ssh-keygen -R "[<host>]:1031"If it was not, stop and tell them — that warning is what it is for.
PTY allocation request failed
Expected. There is no shell to attach a terminal to. Add -T and the line goes
away.
Pushes work, fetches hang
Almost always a proxy or firewall that permits the handshake but throttles bulk transfer. Confirm by cloning over HTTP; if that works, the network is the difference, not your key.