我必須編寫用於通過SSH上傳文件的部署腳本測試,但是我希望它不依賴於外部服務器配置。這是我看到它的方式:模擬SSH服務器用於測試目的
- 在不同的端口上創建2個SSH守護程序,不需要在不同的端口上進行身份驗證。
- 運行在這兩個端口
唯一的問題是如何運行這些虛擬SSH守護程序部署腳本。
我使用Python和Fabric。
我必須編寫用於通過SSH上傳文件的部署腳本測試,但是我希望它不依賴於外部服務器配置。這是我看到它的方式:模擬SSH服務器用於測試目的
唯一的問題是如何運行這些虛擬SSH守護程序部署腳本。
我使用Python和Fabric。
如果你想在服務器的行爲完全控制(例如,爲了模擬各種問題的條件,從而做一個真正徹底測試)我推薦twisted:正如這篇文章所顯示的那樣,它可以非常容易地設置您自己的自定義SSH服務器。
如果你寧願使用現有的SSH服務器,挑選一個從列表here(或使用隨您的系統之一,如果有的話;也許sshwindows如果你在Windows上),並與subprocess運行從Python作爲啓動測試的一部分。
重新實現SSH守護進程並不是微不足道的。
如果您唯一的問題是您不希望它們取決於現有配置,那麼您可以啓動新的sshd使用-f指定特定的配置並在特定的端口上運行-p。
您可以使用使用os.system做出殼來電:
os.system('sshd -f myconfig -p 22022')
這是一個好主意,我幾乎可以正常工作,但是我被ssh-agent卡住了,它無法運行兩次具有特定的authorized_keys文件。無論如何,謝謝你的迴應! – 2010-07-07 20:35:06
感謝您的有用想法,但我只是修補Fabric API來運行本地服務器上的所有命令。無論如何,我會將您的評論標記爲最佳解決方案。 – 2010-07-07 20:38:13