Ssh
沒有 root 權限的 SSH 伺服器上的兩因素身份驗證
我想在伺服器上設置兩個因素身份驗證,但我沒有管理帳戶。這樣做的目的是:我想讓其他人有可能(通過我的帳戶)創建到該伺服器的 SSH 隧道,但我不希望他們擁有 shell 訪問權限。
到目前為止,我發現的唯一線索是創建自定義 .bash_profile 腳本,該腳本要求第二個密碼,就像在這個問題中一樣:
但是它沒有用,因為仍然可以通過 sftp 登錄並刪除腳本。
那麼甚至可以在沒有超級使用者權限的情況下做到這一點嗎?
您在問題中混淆了術語。首先,您要求進行兩因素身份驗證。接下來,您繼續解釋您的需求,這些需求與兩因素身份驗證完全無關。兩因素身份驗證本身不會對使用者通過身份驗證後可以執行的操作施加任何限制。
只要使用公鑰進行身份驗證,就可以對 ssh 登錄的功能施加限制。
在
~/.ssh/authorized_keys
中,您可以對該文件中指定的每個鍵的用途施加限制。例如,如果您不想允許 shell 訪問,則可以強制執行一個命令,該命令什麼都不做:command="/bin/false" ssh-rsa ...
該行上的密鑰既不能訪問 shell 也不能訪問 sftp。只要
-N
在客戶端使用該標誌,它仍然可以用於埠轉發。還有許多其他可能的限制。有關可以對密鑰使用施加的限制的完整列表,請參閱 sshd 手冊頁。