You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Custom Git over SSH: deploy aborts at ssh-keyscan under set -e for hosts that don't answer it (e.g. Hugging Face) #4604
ssh-keyscan hf.co ;echo"exit=$?"# exit=1, no output
ssh-keyscan github.com ;echo"exit=$?"# exit=0, prints keys
In Dokploy, create an Application or Compose with Provider = Git (generic), an SSH URL [email protected]:<org>/<repo>, branch main, and an SSH key.
Deploy.
Current vs. Expected behavior
Current: the deploy aborts immediately. The per-deploy log shows only Initializing deployment / Error occurred, and git clone never runs.
Root cause: cloneGitRepository (packages/server/src/utils/providers/git.ts) builds the clone script starting with set -e and includes ssh-keyscan -p <port> <host> >> known_hosts;. Hugging Face's SSH endpoint does not answer ssh-keyscan — it waits for the client's SSH identification string before sending its own, while ssh-keyscan waits for the server's, so the probe never completes and exits 1 with no output. Under set -e that aborts the whole script before git clone. The clone itself is fine: a real ssh/git client sends its banner first, so hf.co responds (which is why ssh -T [email protected] and a manual git clone both work).
Minimal repro of the abort, no Dokploy needed:
sh -c 'set -e; ssh-keyscan hf.co >> /tmp/kh; echo REACHED-CLONE'# REACHED-CLONE never prints
GitHub/GitLab/Gitea are unaffected — their endpoints answer ssh-keyscan normally.
Expected: a host that doesn't answer ssh-keyscan should not make deploys impossible. ssh-keyscan is a best-effort convenience; the clone's own host-key verification is the real boundary.
Activity