Gitlab SSH Clone 配置 git ssh clone時「Permission denied」

起初因為使用ssh-keygen
生成的私鑰跟公鑰都無法使用,都會回報 「Permission denied」,後來發現還需要在 同層目錄 /root/.ssh/config
新增以下指令。
以下配置請注意:
- Host / HostName 改為同樣URL
- port 預設是22 port
- IdentityFile 請輸入 「private key」路徑
Host gitlab.test.com
HostName gitlab.test.com
Port 8591
User git
IdentityFile ~/.ssh/jenkins
IdentitiesOnly yes
vi /root/.ssh/config
配置完成後即可透過該行指令進行測試 ssh -T [email protected]
若看到 Welcome則表示配置成功。

至於新增ssh-keygen及 gitlab proxy 配置可以參考以下文章。
ssh-keygen 用法及說明
有時候在創建自己的Cloud VM時,會經常使用到pem key,所以記錄下這個指令的用法。 最基礎的創建指令 ssh-keygen -t rsa -b 4096 -f ~/.ssh/new-key -C 專案名@gmail.com * -t 指定密鑰類型 常見有以下 * rsa RSA加密算法 但需要搭配 -b 參數使用 (ex:2048/4096) 兼容性最好。 * ed25519 安全性高,在新系統上有比較好的支持。 * -f 指定密鑰文件名,若要重新創建時可以透過該指令強制覆蓋。 * -C(大寫) 添加注釋 另一方面可以拿當login 時的user,但要注意有些不允許root,可以使用其他名稱。 若在創建時箭頭處設置了密碼 ,那麼使用這組key時 則需要輸入該組密碼才能訪問,以及在使用ssh 訪問時,user 會需要輸入當時創建的ID

Gitlab 透過nginx-prxy 代理 SSH Clone
為了好管理專案所以做了一台nginx-proxy 機器,統一管理所有資源以及替換憑證,但後來遇到gitlab 在進行 ssh clone 時, 因為nginx-proxy 沒有代理22 port 造成其他人員的困擾。 在操作的同時請先確認Gitlab 是否有開放相對應的port 權限給nginx-proxy 機器,而操作步驟只要在nginx 新增一行即可。 切記在新增時 是新增在http之外 而不是在http以內。 http{ # xxxxxx # xxxxxx
} stream { upstream gitlab_ssh { server 10.0.1.1:22; } server { listen 8591 ; proxy_pass gitlab_ssh; }
} 而最終在進行SSH Clone 時 Origin -> [email protected]:
