簡體   English   中英

從shell腳本進行git clone期間傳遞密碼

[英]Passing password during git clone from shell script

我編寫了一個Shell腳本來從多個位置克隆項目,該文件以文件形式發送。 我讀取文件並循環傳遞每個位置並執行我的操作。

LocationFile.txt

Project1=https://enduser1@stash.my.org/my/path/testProject1.git
Project2=https://enduser2@stash.my.org/my/path/testProject2.git
Project3=https://enduser3@stash.my.org/my/path/testProject3.git
Project4=https://enduser4@stash.my.org/my/path/testProject3.git

密碼.txt

Project1=password1
Project2=password2
Project3=password3
Project4=password4

我有一個加密的密碼文件,並存儲在服務器中,可以將其作為腳本的一部分讀取並傳遞到腳本中。在克隆步驟中運行腳本時,系統會提示輸入密碼,但我嘗試通過以下密碼進行操作,但該密碼無法正常工作

##############
gitpassword=$password1 #retrieved from Password.txt

for xxx
    do
    ...
    ... 
    git clone "${ProjectArrayList[1]}" 
    read $gitpassword
    ...
    ..
    done
##############

我知道如果我不想使用ssh,則可以減少密碼。 有沒有辦法通過我現有的方法來實現這一目標

您可以使用Expectsend函數自動模擬用戶輸入。

語法如下所示:

expect -c 'spawn sudo git clone "${ProjectArrayList[1]}"; expect assword; send "password\n"; interact'

Git有一個“憑證助手”可以完成這項工作[它旨在通過https工作]。

參見: https : //git-scm.com/docs/git-credential-storehttps://help.github.com/articles/caching-your-github-password-in-git/

暫無
暫無

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

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