Linux

git pull over ssh 給出了奇怪的錯誤

  • November 25, 2016

這是我的設置。

  1. 我的 git 儲存庫在 bitbucket 中
  2. 我在遠端 aws ec2 伺服器上創建了密鑰並將其保存在~/.ssh文件夾中
  3. 然後我通過遠端伺服器上的 ssh-agent 添加密鑰
  4. 在 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.shcd進入我的儲存庫並執行git pull.

為什麼會出現這個問題?我還應該在我的 Windows 機器上保留這些 ssh 密鑰嗎? 任何幫助都將是無價的。

通過執行shwith sudo,您可以有效地使用 root 的.ssh憑據來訪問 repo。這些與您生成並添加到 bitbucket 的密鑰不匹配。

我想知道你為什麼首先需要sudo,repo 是否只能由 root 寫入?一種選擇是將 root 的 ssh 密鑰添加到 bitbucket,或者避免使用sudo.

引用自:https://serverfault.com/questions/817060