如何在標準 22 之外的不同連接埠上執行 SSH 守護程序?
我在雲端虛擬機器上搞砸了 SSH 配置,所以現在 SSH 總是提示我輸入密碼。我早期嘗試修復此問題將我拒之門外,迫使我卸載磁碟,將其安裝到正在工作的虛擬機器中,並將檔案修復到已知的工作狀態。但是,它仍然強迫我輸入密碼。
我想更新/etc/ssh/sshd_config
並重新啟動主 ssh 守護進程,我可以對其進行測試,同時仍然使用舊配置運行另一個守護進程,我可以使用它來恢復配置,以防第一個守護進程將我鎖定。我該如何做到這一點,特別是在 Ubuntu 上?
答案1
你沒有提到 Ubuntu 版本,所以我不確定你正在運行哪個 init 系統。
如果是 systemd,您可能有一個檔案/etc/systemd/system/sshd.service
.您可以將其複製為/etc/systemd/system/sshd_alt.service
.然後調整一下ExecStart
線,加個-p 22000
什麼的。之後做systemctl enable sshd_alt
和systemctl start sshd_alt
。您也可以指向完全不同的設定檔。
如果這只是一次性的事情,您也可以在螢幕上手動啟動副本或其他操作。只需啟動螢幕並執行類似的操作即可/usr/sbin/sshd -D -p 22200
。您將啟動一個備用 sshd 守護程序,直到您可以重新連接到該畫面並終止該進程。
或者像@EEAA 所說的。只需不要斷開連接,使用第二個會話來測試是否可以重新連接。
答案2
您可以使用下列命令在備用連接埠上啟動 sshd:
sshd -p 12345
將 12345 替換為您最喜歡的連接埠號碼。如果sshd
不在您的 中PATH
,您可能需要在命令中使用完整路徑名,例如/usr/sbin/sshd
。
答案3
只需保持一個 SSH 會話處於活動狀態並使用另一個會話來進行配置變更即可。如果您的配置變更破壞了某些內容,您的原始會話將保持連線並可恢復變更。