我正在尋找一些幫助來顯示登錄橫幅,當連接到遠程服務器使用SSH顯示一條消息,然後用「是或否」提示用戶。只有在輸入「是」時,纔會提示用戶在SSH期間輸入密碼。SSH安全外殼服務中的用戶協議橫幅
我知道登錄橫幅可以使用/etc/issue.net配置,然後在/ etc/ssh/sshd_config中取消註釋行Banner,然後重新啓動SSH。但是,如果我另外需要SSH來顯示橫幅後提示接受策略橫幅,我該如何解決?
非常感謝您的幫助。
我正在尋找一些幫助來顯示登錄橫幅,當連接到遠程服務器使用SSH顯示一條消息,然後用「是或否」提示用戶。只有在輸入「是」時,纔會提示用戶在SSH期間輸入密碼。SSH安全外殼服務中的用戶協議橫幅
我知道登錄橫幅可以使用/etc/issue.net配置,然後在/ etc/ssh/sshd_config中取消註釋行Banner,然後重新啓動SSH。但是,如果我另外需要SSH來顯示橫幅後提示接受策略橫幅,我該如何解決?
非常感謝您的幫助。
你可以使用這樣的事情:
#!/bin/bash
cat /usr/share/agreement.txt
read -p "Do you accept? (y/n) " choice
if [[ $choice = y ]] ; then
/bin/bash
fi
與協議的內容創建文件/usr/share/agreement.txt
並使腳本可執行文件(使用chmod +x
)。
然後編輯/etc/passwd
並設置命令運行到該腳本的路徑(例如/usr/share/agreement.sh
)。
謝謝Louis。但是,在用戶接受協議後,在/ etc/passwd中,它仍然應該根據用戶名/密碼進行認證。在上面,當你輸入「yes」時,爲什麼我們有/ bin/bash? – user3516942
此外,由於/ etc/passwd包含以下形式的條目:名稱:密碼:UserID:PrincipleGroup:Gecos:HomeDirectory:Shell,我們將在哪裏設置命令來運行路徑agreement.sh – user3516942
Shell可以[任何命令]( http://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/),所以只需用腳本的完整路徑替換'/ bin/bash'即可。 –
在首先發布密碼之前要求用戶同意所需的任何策略是否更有意義?這對於大概授權的用戶登錄來說似乎是不必要的障礙。 – chepner
我明白了。但是,只有當他們接受說「是」時,我們纔會進一步追求 – user3516942
我認爲第二句話是基於對SSH工作方式的誤解。 AFAICT ssh服務器無法向用戶顯示任何內容,直到用戶通過身份驗證之後。 (另外,如果用戶將公鑰上傳到'authorized_keys'文件,它們將不會被提示輸入密碼。) – dcorking