
我目前正在設定一個與 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 手冊頁),以便任何使用公鑰的人只能執行一個命令(即您的資訊命令)。