一、修改SSH默認端口22
1、修改/etc/ssh/sshd_config文件中的Port參數,首先將原來#Port=22這行的#號去掉,另起一行同樣鍵入Port=2345。然后保存退出。
2、systemctl restart sshd服務,然后測試2345端口是否開啟,一定要先驗證新端口是否可以連接(這里如果不行的話,檢查SELinux設置、iptables防火牆設置、firewalld防火牆設置,最直接的方法是直接關閉)
3、最后如果新端口2345能夠順利連接,就可以再去/etc/ssh/sshd_config配置文件中,將Port=22端口加上#號注釋掉,別忘記了最后重啟一下sshd服務生效。
注意:過程中可以使用netstat -nultp查看端口開放狀態,每一步都要驗證,避免連接失敗,造成不必要的麻煩。
二、使用Xshell進行秘鑰登錄Centos7操作系統
大概步驟:
1、首先需要在被連接的Linux服務器上修改/etc/ssh/sshd_config配置文件中的參數,修改完以后,先不要重啟sshd服務。
PasswordAuthentication no # 不允許密碼驗證登錄 PubkeyAuthentication yes # 允許公鑰驗證登錄 AuthorizedKeysFile .ssh/id_rsa.pub # 指定公鑰文件路徑
2、在Xshell端口生成一對秘鑰,將公鑰復制粘貼到Linux服務器的vim /root/.ssh/authorized_keys中。
如果你要登錄用戶家目錄下沒有.ssh目錄,可以通過ssh-keygen命令生成服務端自己的密鑰方式讓系統自動創建目錄,下一步,下一步即可。
上圖中在下拉框中已經看到了公鑰,然后全選復制,最后將粘貼到Linux服務器的vim /root/.ssh/authorized_keys文件中。這里需要注意,如果上一步紅色字體標注的(Linux服務上未執行ssh-keygen命令話,就找不到/root/.ssh/這個路徑,如果沒有,可以先執行這個命令。)
然后給這個文件修改權限為600(如果/root/.ssh/下沒有authorized_keys文件,可以手動創建一個。)
chmod 600 /root/.ssh/authorized_keys
最后,重點是所有設置都完成以后,記得要重啟sshd服務。
systemctl restart sshd
3、連接測試
有時候這里輸入完密碼以后會提示連接失敗,再多試試,密碼容易輸錯。
提醒:
1、如果要改回原來用密碼登陸的樣子,只改sshd_config配置文件成原樣還不夠,需要把authorized_keys文件清空再重啟sshd服務。
擴展
1、為了安全起見,一般情況下都不會開放22端口,哪怕是內網,除非真的沒吃過虧,或者公司安全工程師沒有找過你。
2、如果一台服務器經常在一台電腦上需要登錄,建議盡量使用秘鑰登錄,這樣等於又上了一把鎖。
3、還有一種例外比較常見,就是先使用root賬戶創建一個普通用戶,再在/etc/ssh/sshd_config下修改PermitRootLogin參數為no(不允許root直接登錄),這樣的好處就在於普通用戶不會像root用戶權限那么大,要連續知道兩個用戶的名字和密碼更難,安全等級更完善。
步驟很簡單:
1、新建一個普通賬戶,例如Mr.lei,記得一定要使用passwd命令給新建的這個用戶加上密碼,否則無法登陸。
2、修改/etc/ssh/sshd_config配置文件中的PermitRootLogin參數,先去除前面的#號鍵,然后再將后面的yes改成no,保存退出。
3、重啟sshd服務,使用客戶端嘗試登陸即可。