2012-06-06 34 views

回答

5

setsid命令的其中一個影響是,通過setsid(1)啓動的進程與其控制終端分離。在沒有控制終端的情況下,scp不能從它啓動的終端上請求密碼,因爲它不會「看見」任何密碼。然而,它所「看到」的是環境變量,它告訴它有一個X11窗口會話,它可以顯示一個圖形工具,要求你輸入密碼或密碼,以解鎖將用於驗證的私人SSH密鑰遠程系統。

即使你將取消設置環境變量,它「認爲」,它使用路由的x11-ssh-askpass對話屏幕(DISPLAY),這可能不會產生預期的效果對你來說,因爲需要的密鑰將被丟失, scp操作會失敗。

我會在這裏推薦的一個解決方案是使用ssh-keygen(1)生成「密碼保護」而不使用密碼保護的方式設置「無密碼」登錄(如果適用於特定的安全環境) 。

您可能會探索其他可能性,例如在文件或命令行選項中提供密碼短語,無論更適合您的工作。請查看ssh(1)聯機幫助頁的ENVIRONMENT部分。