由於某種原因,我必須使用「setsid」來運行我的所有命令。如何消除運行「setsid scp」時出現的對話框?
但是,運行「setsid scp〜/ aaa [email protected]:/ tmp /」時,會出現一個請求輸入密碼的對話框。 通常,命令行中會出現提示。
是否由ssh中的某些配置引起的? 我想消除這個盒子。如何實現它?
由於某種原因,我必須使用「setsid」來運行我的所有命令。如何消除運行「setsid scp」時出現的對話框?
但是,運行「setsid scp〜/ aaa [email protected]:/ tmp /」時,會出現一個請求輸入密碼的對話框。 通常,命令行中會出現提示。
是否由ssh中的某些配置引起的? 我想消除這個盒子。如何實現它?
setsid
命令的其中一個影響是,通過setsid(1)啓動的進程與其控制終端分離。在沒有控制終端的情況下,scp
不能從它啓動的終端上請求密碼,因爲它不會「看見」任何密碼。然而,它所「看到」的是環境變量,它告訴它有一個X11窗口會話,它可以顯示一個圖形工具,要求你輸入密碼或密碼,以解鎖將用於驗證的私人SSH密鑰遠程系統。
即使你將取消設置環境變量,它「認爲」,它使用路由的x11-ssh-askpass
對話屏幕(DISPLAY
),這可能不會產生預期的效果對你來說,因爲需要的密鑰將被丟失, scp操作會失敗。
我會在這裏推薦的一個解決方案是使用ssh-keygen(1)生成「密碼保護」而不使用密碼保護的方式設置「無密碼」登錄(如果適用於特定的安全環境) 。
您可能會探索其他可能性,例如在文件或命令行選項中提供密碼短語,無論更適合您的工作。請查看ssh(1)聯機幫助頁的ENVIRONMENT部分。