對於我正在使用的服務器技術,可以通過運行一些命令行參數手動將服務器加入集合。在某一時刻,控制檯會提示您是否要接受證書鏈,並輸入(y/n)
並且該命令一直運行。我試圖自動化這個過程,但是我在響應輸入提示時碰到了一個障礙,並且在四處探聽之後聽說它可能是一個SSL事件,所以我不知道是否有不同的方式來做到這一點。如何獲取控制檯輸入以在bash腳本中使用SSL?
如果你做手工,這是它的外觀:
Joining the collective with target controller ...this may take a while
SSL trust has not been established with the target server
//certificate chain
Do you want to accept the above certificate chain? (y/n)
然而,既:
echo "y y" | bash ./script.sh
//inside script.sh
echo "y y" | $(command)
結束了這種反應:
Joining the collective with target controller ...this may take a while
SSL trust has not been established with the target server
//certificate chain
Input console is not available
Aborting join collective.
Error:
Unable to complete the MBean operation
Error: java.securit.cert.CertificateException: User has rejected the request to trust the
certificate chain
我希望有人或許能夠通過手動迴應的方式來做到這一點
我看,我假設有這樣做,則沒有原生的方式?我的限制相當嚴格,我必須編寫一個腳本,可以在「開箱即用」的機器上運行,謝謝你的解釋,儘管 – sreya 2014-09-10 18:51:09
不幸的是,沒有。沒有很好的,相對便攜的使用我知道的純bash使用ptys。 – nneonneo 2014-09-10 18:53:20
或者遠程命令可能不期望一個真正的終端,但你的SSH不分配tty。您可以使用選項「-t」強制執行僞tty分配 – mcoolive 2014-09-10 23:15:06