As the title says. I got stuck a bit when attempting to connect ArgoCD and GitHub, so I’m noting it down as a memorandum. May fewer people get caught in the same place.
It’s strictly about my environment (GitHub repository, ArgoCD, connection via SSH), but just tracing the steps should connect it. I summarized mainly centered on parts where I went “Huh?”.
Procedure to Connect ArgoCD to GitHub
First, I’ll roughly write what to do on GitHub and ArgoCD respectively.
GitHub Side Work
- Create Repository
- Set SSH Public Key to Repository’s Deploy Key
ArgoCD Side Work
- Navigate to
Settings > Repositories->+ CONNECT REPOto display form to register repository - Enter following in the form
Choose your connection method->VIA SSHRepository URL: GitHub’s SSH URL (like[email protected]:xxx/yyy.git)SSH private key data: Paste content of Private Key
- Complete
Stumbling Points
It looks simple, but there were actually several trap points… that is the main topic.
- SSH Public Key setting location
- SSH Public Key needs to be without password
- Empty repository is NG
SSH Public Key setting location
Set SSH Public Key in Deploy Keys. Probably Account SSH keys works too, but hadn’t tried.

SSH Public Key needs to be without password
If SSH Public Key has a password, Connection Status becomes failed, so prepare an SSH Public Key without password by either creating new or removing passphrase from existing SSH key.
If creating new, execute below to set without passphrase.
ssh-keygen -t ed25519 -C "{email_address}"If removing passphrase, invoke passphrase change process with below.
ssh-keygen -f {path_to_private_key} -pEmpty Repository is NG
This was a quiet trap point.
If repository is empty, Connection Status also becomes failed, so push at least a README appropriately, then add to argocd. It might be easier to create repository with README from the start.
Conclusion
So, I roughly wrote about points I stumbled upon when connecting GitHub and ArgoCD via SSH.
Honestly, at first I thought “Just enter Repo URL and paste key right?”, but there were surprisingly detailed pitfalls… Especially points like “Empty repository is NG” or “Keys with passphrase get rejected” - you definitely get stuck if you don’t know.
I hope this article helps future me or someone stumbling at the same place. If I get stuck on something again, I’ll leave a memo like this.









