Linux
git pull over ssh 給出了奇怪的錯誤
這是我的設置。
- 我的 git 儲存庫在 bitbucket 中
- 我在遠端 aws ec2 伺服器上創建了密鑰並將其保存在
~/.ssh
文件夾中- 然後我通過遠端伺服器上的 ssh-agent 添加密鑰
- 在 bitbucket 網站上更新了這些密鑰。
當我登錄到遠端伺服器並
git pull
在我的 git 儲存庫上執行時,一切正常。這裡沒有問題。但是當我通過 Windows 上的 cygwin bash 執行相同的程序時,它給了我這個錯誤:
Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
我在我的 Windows 機器上執行以下操作
ssh -i xyz.pem user@ip -t 'sudo sh deploy.sh'
在哪裡
deploy.sh
,cd進入我的儲存庫並執行git pull
.為什麼會出現這個問題?我還應該在我的 Windows 機器上保留這些 ssh 密鑰嗎? 任何幫助都將是無價的。
通過執行
sh
withsudo
,您可以有效地使用 root 的.ssh
憑據來訪問 repo。這些與您生成並添加到 bitbucket 的密鑰不匹配。我想知道你為什麼首先需要
sudo
,repo 是否只能由 root 寫入?一種選擇是將 root 的 ssh 密鑰添加到 bitbucket,或者避免使用sudo
.