多個使用者使用腳本透過無密碼 SSH 存取遠端伺服器

多個使用者使用腳本透過無密碼 SSH 存取遠端伺服器

我目前正在設定一個與 Active Directory 綁定的 Linux 盒子。此方塊將允許使用者使用其 AD 使用者名稱和密碼透過 SSH 進入該方塊以收集資訊(框 A)。問題是我試圖在 /etc/bash.bashrc 中創建一個函數,因此用戶要做的就是輸入“get_info”,例如,該函數將 SSH 到遠端電腦(框 B)運行命令並輸出資訊傳回給使用者。

問題是,我在框 A 上產生了一個 rsa 金鑰,將其新增至框 B 的authorized_keys 中,並且運作正常。我遇到的問題是,如何為目前使用者和任何登入 Box A 的新使用者進行一次設定。

有沒有比我目前正在做的更好的方法。本質上,我只需要連接到遠端盒子,運行命令,將資訊輸出回用戶,僅此而已。如何允許新用戶透過腳本連接到遠端設備,而無需為他們產生 RSA 金鑰。

get_info 函數將被提供一個值「get_info 012345」並傳回結果。

答案1

需要什麼:

  • 使用者共享金鑰
  • 在伺服器上建立通用腳本
  • 在 ssh 配置中限制使用者使用特定命令:

    指令=“/bin/myscript.sh”,無埠轉發,無X11轉發,無代理轉發,無pty ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw =用戶

  • 在本機或其主資料夾中建立腳本,執行到遠端伺服器的 ssh 命令,在伺服器上執行腳本,然後輸出

  • 如果您需要輸入遠端會話,您可以執行本機腳本

    ./local.sh 01234

其中執行:

ssh user@remote '/bin/myscript.sh $1'

它被解釋為

ssh user@remote '/bin/myscript.sh 01234

答案2

與其更改/etc/bash.bashrc,為什麼不創建一個位於本地主機上所有用戶的標準路徑中的程式(可能用 bash 編寫)。該程式可以使用一個標誌來呼叫 ssh,以指向本機系統上的公共私鑰(例如,您可以將其放在 /etc 或 /etc/opt/ 某處)。遠端系統將有一個包含公鑰檔案的帳戶,並經過修改(請參閱 ssh 手冊頁),以便任何使用公鑰的人只能執行一個命令(即您的資訊命令)。

相關內容