gitlab-sshd in GitLab Shell

gitlab-sshd is a binary in gitlab-shell which runs as a persistent SSH daemon. It is intended to replace OpenSSH on GitLab SaaS, and eventually other cloud-native environments. Instead of running an sshd process, we run a gitlab-sshd process that does the same job, in a more focused manner:

Git on serverGitalyRailsGitLab SSHDGit on clientGit on serverGitalyRailsGitLab SSHDGit on clientgit fetchLookup key IDAuth checkBidirectional communication between Git client and serverssh git fetch-pack requestGET /internal/api/authorized_keys?key=AAAA...200 OK, command="gitlab-shell upload-pack key_id=1"GET /internal/api/allowed?action=upload_pack&key_id=1200 OK, { gitaly: ... }SSHService.SSHUploadPack requestgit upload-pack requestgit upload-pack responseSSHService.SSHUploadPack responsessh git fetch-pack response