因為你沒提到系統環境,所以我自行假設是 Linux (抱歉Windows我不熟),以下說明在 Linux 上有效,但 Windows 上不確定。
OpenSSH 本身不支援要求使用者同時滿足 key 和 password 驗證,因此會需要一些替代方案。
方案一:在 Client 端產生 key 時就可以給予 passphrase,當 Client 使用 key auth 時便需要輸入 passphrase。這個方法的話,passphrase 由 client 端決定。
方案二:透過 ForceCommand
或是 pam_exec
在使用者通過 OpenSSH 的 key auth 後自行撰寫 script 來驗證密碼。這個方法的話,password 驗證由 server 端決定。
我之前用的方法
sshpass -p $SSH_PASSWORD ssh -o StrictHostKeyChecking=no -p 22 $SSH_NAME