新增一個普通賬號
-
首先我們新增一個帳號
adduser accountName
設置密碼
passwd accountName
禁止 root 使用 ssh 登入
編輯 /etc/ssh/sshd_config
#PermitRootLogin yes
修改為:
PermitRootLogin no
最后輸入以下指令重新啟動 sshd:
然后重啟sshd服務
systemctl restart sshd.service
使用非常規的 ssh 端口
-
編輯/etc/ssh/sshd_config,:
#Port 22
修改為:
Port ****
你可以把 **** 改為任何 1024 – 65535 之間的任何數字,若果怕與某些系統服務發生沖突,可以參考一下這里。
重新啟動 sshd:
systemctl restart sshd.service -
然后是設定防火墻,CentOS 7 的內核已經有防火墻 netfilter,但你的系統未必安裝了用戶界面,較前版本的 CentOS 默認使用 iptables,但 CentOS 7 開始使用效能更高、穩定性更好的 firewalld,若果服務器尚未安裝firewalld,可以使用以下指令安裝,不確定是否已經安裝的話也可以輸入這個指令,它會告訴你已經安裝然后退出。
yum install firewalld
跟著啟動:
systemctl start firewalld
設定 firewalld 的方法有兩個,- 第一個是修改 firewalld 有關 sshd 的設定,把端口 22 改為 10837,這是正統的做法,但步驟比較多;
- 第二個是要求 firewalld 開啟端口 10837,不指定它屬于哪一個服務,這個做法通常處理臨時的端口開啟/封鎖,步驟簡單,但是日后你要是忘記了這個端口為什么開啟了呢?什么時候開啟的呢?為了哪一項服務開啟呢?可能有點麻煩。我兩種方法都會介紹一下,但作為專業的系統管理員(即使不是真正的專業,也應該具備這樣的心態),我推薦使用第一種方法。
-
設定防火墻方法一:
復制 firewalld 有關 sshd 的設定檔案:
cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
使用 vim (或任何文本編輯器) 開啟 /etc/firewalld/services/ssh.xml,尋找:
<port protocol="tcp" port="22"/>
修改為:
<port protocol="tcp" port="10837"/>
儲存后重新加載 firewalld:重啟
firewall-cmd --reload
設定防火墻方法二:
輸入以下指令:
firewall-cmd --zone=public --add-port=10837/tcp --permanent
啟用公鑰驗證登入ssh
公鑰驗證法。
首先每一名用戶建立一對加密鑰匙(密鑰和公鑰),密鑰儲存在日常使用的電腦,公鑰則儲存在服務器,使用 ssh聯系到服務器的時候,電腦會把一些建立連線請求的資料,其中包括帳號名稱和公鑰,并且把部分資料用密鑰制作數碼簽署,一股腦兒送到服務器,服務器檢查自己的“公鑰庫”是否包含送來的公鑰,有的話再驗證數碼簽署,成功的話便直接登入服務器,無需輸入帳號密碼。
第一步在自己的電腦上使用 ssh-keygen 指令建立一對加密鑰匙,它會詢問儲存加密鑰匙的檔案名稱,和把鑰匙加密的密碼,檔案名稱使用默認的路徑和名稱便可以,密碼則無需輸入:
這個指令會創造兩個檔案,一個名為 id_rsa,是你的 RSA 密鑰,另一個是 id_rsa.pub,是你的 RSA 公鑰。公鑰必需上傳到服務器并且附加于用戶帳號里面的 .ssh/authorized_keys 檔案中,這個檔案儲存所有可透過 ssh 登入到這一個帳號的公鑰,一行一條公鑰: