在用戶層級禁用互動式 SSH

在用戶層級禁用互動式 SSH

我透過 SSH 連接到不受我控制的伺服器。

我使用公鑰訪問,不需要能夠使用鍵盤互動密碼進行連接。

我想禁用我的用戶的鍵盤互動訪問,以便其他人無法以這種方式進行駭客攻擊。

由於我不控制伺服器,有沒有辦法設定使用者的設定檔以防止鍵盤互動存取?

答案1

如果您完全無法控制伺服器,我看不出有什麼辦法可以做到這一點,因為您無法控制伺服器設置,而這正是必須的地方。

您需要做的是將其新增至 /etc/ssh/sshd_config 檔案:

PasswordAuthentication no

現在,這將有效地停用密碼身份驗證全部用戶,這可能是不可取的。然後您可以做的就是將此配置指令放在 Match 區塊中,因此它僅適用於您的用戶,在同一個設定檔中:

Match user yourusername
PasswordAuthentication no

如果您可以讓伺服器管理員為您執行此操作,那麼這可能是一個不錯的選擇。

另一種方法是為您的用戶設定一個非常長、隨機且複雜的密碼,這樣您就可以合理地防止隨機暴力破解嘗試。大多數攻擊者可能會使用一些基於字典的技術,因此只要您的密碼足夠長且足夠隨機,它應該非常安全。

有關更多詳細信息,請參閱“man sshd_config”。另外,也建議了我提出的解決方案這裡

答案2

您只需將文件 from 中的這一行編輯/etc/ssh/sshd_configyesno

#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

答案3

[我假設您使用 BASH 作為登入 shell。如果不是,適當調整...]

在 中~/.ssh/authorized_keys,在每一行前面新增一個命令規範,如下所示:

command="ssh_key=XXX /bin/bash -l" ssh-dss AAAA...K3E= me@mymachine

在 中~/.bash-profile,將以下陷阱放在頂部:

if [ "${ssh_key}" != "XXX" ]; then
  echo "${SSH_CLIENT}" | mailx -s "password login attempt!" me@mailservice
  exit
fi

現在,當有人使用密碼進入您的帳戶時,您只會收到郵件。

相關內容