簡體   English   中英

在 SSH'ing bash 腳本中輸入 Git 的私鑰密碼

[英]Enter Private Key Passphrase for Git in While SSH'ing bash script

這是我到目前為止在<<EOF中的代碼,同時 ssh 進入一個盒子

mkdir ~/.ssh/
rm ~/.ssh/config
touch ~/.ssh/config
echo 'Host *******' >> ~/.ssh/config
echo '   StrictHostKeyChecking no' >> ~/.ssh/config

cp ~/gittoken ~/.ssh/id_rsa
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

cd /root
git clone ***********
expect "assword:"
send "$git_token_passphrase\r";
interact

我得到的錯誤是

Permission denied (publickey).
fatal: Could not read from remote repository.

我已經將我在 SO 上看到的多個不同答案組合在一起,我認為這可能對我的案子有所幫助。

當我在盒子上手動運行它們時,我可以運行所有這些命令。 所以我的猜測是在通過腳本 ssh 時運行它們需要一些額外的步驟。 此外,expect 和 send 在我的系統上不起作用,但我想無論如何我都會把它們放在那里以表明我已經嘗試過它們。

/bin/bash: line 105: expect: command not found
/bin/bash: line 106: send: command not found
/bin/bash: line 107: interact: command not found

您可以使用sshpass來實現這一點。

但是,由於現在整個設置的安全性不在知道密碼的人的頭腦中,而是與腳本中的安全性一樣強,或者——如果你不那么懈怠——到一些保存密碼的文件中,你可能也可以通過運行從 SSH 密鑰中刪除密碼保護

ssh-keygen -f ~/.ssh/id_rsa -p

並輸入兩次空密碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM