簡體   English   中英

SSH如何在Linux上提示輸入用戶名和密碼

[英]How does SSH prompt for user name and password on Linux

我正在創建一個在多個遠程 Linux 設備上運行的應用程序,並且有一個中央管理員來管理這些設備。 我正在添加一項功能,以便用戶可以在中央管理員中打開終端 window 到遠程設備。 它的工作原理很像使用 SSH 客戶端遠程訪問服務器,除了我使用中央管理員和設備之間的現有通信通道,因此我根本不需要使用 SSH 協議。

我大部分時間都在工作。 我在設備上創建了一個偽終端 (pty),並在 pty 和在中央管理員上運行的終端客戶端之間傳送輸出/輸入。

我無法弄清楚的一個部分是 SSH 如何使用 putty 之類的客戶端提示輸入用戶名和密碼。 這是偽終端中的 shell 提示的內容,還是客戶端進行提示並將其傳遞給 SSH 服務器?

如果 shell 提示輸入用戶和/或密碼,那么 shell 命令是做什么的? 我用 su 和 sudo 嘗試了很多東西,但還沒有弄清楚。

如果客戶端在創建shell之前提示,那么SSH服務器如何認證用戶和密碼? 使用哪些庫調用來執行此操作?

如果有人對在哪里查找此信息有任何建議,請分享。

PuTTY 實現了 SSH,其中一部分是實現身份驗證交換。 對於允許密碼身份驗證的服務器,如果使用密鑰的初始嘗試失敗,SSH 通常會提示輸入密碼。

這可能是 PuTTY 的 SSH 實現的一個特性。 換句話說,要顯示該提示,您必須公開有效的 SSH 服務。

如果您正在運行純文本 TCP 服務,您可能希望這樣做至少對其進行加密。

在查看 OpenSSH 的源代碼 ( https://github.com/openssh/openssh-portable ) 中有代碼提示輸入用戶和密碼,然后驗證憑據。 提示是通過終端界面完成的。

所以我相信我的問題的答案是我在遠程 Linux 設備上運行的服務器需要向 xterm 客戶端發送終端命令以提示輸入憑據。 然后驗證這些憑據並在用戶上下文中啟動偽終端。

此功能未內置在 shell 中,也未內置在終端客戶端中。

暫無
暫無

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

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