大家都知道,讓明碼在網路上傳輸是很危險的,所以我們都會使用SSH RSA登入,但是如果你的Server是直接連上網路的話,那麼你的Server就會被駭客不斷的嘗試登入,這時候你就可以使用下面的方法,讓你的Server只開放給SSH RSA登入。

原則上有幾個步驟要處理

  1. 加入SSH公鑰(不然一開始就封閉,除非Server有可以直接操作的螢幕,不然就再也沒辦法控制了)

    具體加入的方法可以參考這篇

  2. 設定防火牆,只開放特定的IP可以連線

  3. 設定SSH,只開放RSA登入

  4. 重啟SSH

Step2. 設定防火牆,只開放特定的IP可以連線

使用編輯器修改下面兩個檔案,並且加入新的設定

/etc/hosts.allow /etc/hosts.deny

# /etc/hosts.allow

/etc/hosts.allow

# 允許所有本地IP(記得修改網段,未必每個人都是192.168.50.xx)
sshd: 192.168.50.
# /etc/hosts.deny

# 禁止所有來源 IP 的連線
sshd: ANY

Step3. 設定SSH,只開放RSA登入

使用編輯器修改下面檔案,並且加入新的設定

# /etc/ssh/sshd_config

# ...

PubkeyAuthentication yes

# ...

PasswordAuthentication no

# ...

Step4. 重啟SSH

sudo /etc/init.d/ssh restart

參考資料

https://officeguide.cc/linux-hosts-allow-deny-restrict-ip-address-tutorial-examples/