在 Linux 中設定 ssh 群組金鑰而不影響 ~/.ssh/config

在 Linux 中設定 ssh 群組金鑰而不影響 ~/.ssh/config

我必須設定一個 ssh 群組密鑰,用於發佈到遠端 git 儲存庫。

由於 git (以及我認為許多其他程式)不允許定義標誌滯後,因此ssh -i將使用哪個金鑰的資訊來自預設值或中定義的內容~/.ssh/config

這將需要為需要具有此能力的使用者執行新的管理任務(即在其~/.ssh/config文件中添加適當的條目)。

有什麼辦法可以讓我省掉這些精力嗎?我無法找到 OpenSSH 讀取的任何環境變量,因為這將是一個解決方案(透過建立執行所需操作的包裝腳本)。

答案1

所以答案如下(感謝tink):

使用 ssh 代理程式來保存金鑰始終有效。為此,您可以將呼叫封裝在腳本中:

#!/bin/bash
key=$1
[[ "$SSH_AGENT_PID" ]] || eval $(ssh-agent)
ssh-add $key

#...the rest of the script...

在 git 的特定情況下,有一個GIT_SSH環境變數指向將要呼叫的命令而不是 ssh。所以可以ssh-iflag來發出問題。

只是警告您,這是一個概念證明,您需要確保加載腳本後環境不受影響(即,如果存在代理並且未加載密鑰,則需要刪除密鑰,如果沒有代理)存在、刪除代理等)

相關內容