【轉】Linux最高權限用戶root,默承認以直接登陸sshd。爲了提升服務器的安全度,須要對它進行禁止,使得攻擊者沒法經過暴力破解來獲取root權限。linux
ps: 如下內容皆非原創,只是我的的一個實踐過程的一個記錄,記錄下來一是怕本身忘記,而是給像我那樣的小白,能夠一篇搞定服務器安全登陸問題。主要參考了幾個優秀的博客文章,皆在文章後面列出,感謝原創!git
1,新建一個用戶;github
#useradd xxx (xxx爲你要新建的用戶名)vim
2,爲新用戶設置密碼;緩存
#passwd xxx (xxx爲你要新建的用戶名)安全
3,修改SSHD配置,禁止root直接登陸服務器
#vi /etc/ssh/sshd_configssh
查找「#PermitRootLogin yes」,將前面的「#」去掉,段末「yes」改成「no」(不一樣版本可能區分大小寫),並保存文件。函數
4.爲新添加的用戶添加root權限工具
vi /etc/sudoers
#方法一:將下面#號去掉,保存
#%wheel ALL=(ALL) ALL
修改新添加的用戶,使屬於root組
#usermod -g root xxx
#方法二:直接添加root權限, 直接複製下面root的那行,用戶改爲咱們新添加的用戶就能夠了
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
xxx ALL=(ALL) ALL
權限添加完以後,使用xxx用戶登陸操做,提示權限不足的時候,就能夠直接sudo啦
注:要是找不到sudoers,那麼就先安裝sudo吧 yum install sudo.
雖然更改端口沒法在根本上抵禦端口掃描,可是,能夠在必定程度上提升防護。
1.打開sshd配置文件
#vi /etc/ssh/sshd_config
2.找到#Port 22字段刪掉#,將22改成其餘不被使用的端口
服務器端口最大能夠開到65536
3.重啓sshd服務
#service sshd restart
4.別忘了修改登錄工具那的端口設置。
1. 生成ssh-key
ssh-keygen -t rsa -f test -C "test key" //-f 文件名 -C 備註 -t 類型
2. 上傳公鑰到服務器
ssh-copy-id -i ~/.ssh /id_rsa.pub A@IP_address
//這一步會將公鑰上傳到 A 中的 /home/A/.ssh/authorized_keys
// 文件,是用來存放受權密鑰的authorized_keys
3. 設置服務器公鑰的權限
chmod 400 /home/A/.ssh/authorized_keys #將 authorized_keys 的權限設置爲對擁有者只讀,其餘用戶沒有任何權限 chattr +i /home/A/.ssh/authorized_keys #保證 authorized_keys 的權限不會被改掉 chattr +i /home/A/.ssh #設置 ~./ssh 的 immutable 位權限, #防止重命名 ~/.ssh ,而後新建新的 ~/.ssh 目錄和 authorized_keys 文件
4. 嘗試使用ssh-key登陸服務器
ssh -i /user/.ssh /id_rsa A@IP_address
#利用 SSH-Key 登錄普通帳戶 A ,看是否成功
5.若是成功登錄 A, 編輯 服務器上面的sshd_config 文件
su root #切換root帳號
vim /etc/ssh/sshd_config #按 i 進入編輯 確保(去掉註釋#) RSAAuthentication yes #容許 RSA 認證 PubkeyAuthentication yes #容許公鑰認證 PermitRootLogin no #禁止 ROOT 登錄 PasswordAuthentication no #禁止密碼登錄 修改端口, 將 #Port 22 改成 Port 端口號數字 #改掉默認端口 按 esc 退出編輯,:wq #保存並退出 sshd_config service sshd restart #重啓 SSH
6.配置本地ssh config,方便登陸。多個 ssh 帳號須要配置,在 config 文件裏隔行分開寫就行
vi ~/.ssh/config #在私鑰所在的.ssh 文件夾內新建一個 config 文件 按 i 編輯,複製如下內容 Host vps #這個名字隨意,感受像調用函數 HostName IP_address #IP 地址或服務器域名 Port XX #服務器端開放的 ssh 端口,第 7 步中改的端口 User A #登陸的用戶名 IdentityFile ~/.ssh/ id_rsa #使用的密鑰文件密鑰文件,本地私鑰地址
Host vps2
…… 按 esc 退出編輯,輸入:wq 退出並保存
#ssh vps 就能直接登陸vps啦!
另外備註一點, github 用ssh下載的話,會發現permison denied!
檢測是因爲默認是讀取id_rsa 的祕鑰,我已經命名成了github,因此找不到就一直連不上
把代碼加到緩存ssh-agent 的高速緩存裏面
ssh-add ~/.ssh/github
另一種方法就是在ssh config裏面添加咱們的github信息
Host personal
HostName github.com
User git
IdentityFile ~/.ssh/work_rsa
測試 ssh - T git@personal 成功
git clone git@personal:MorePainMoreGain/datetimepicker.git #MorePainMoreGain 用戶名 datetimepicker 倉庫名
參考博客:
Linux 0 基礎,在 VPS 上禁止 ROOT 帳戶,禁用密碼登陸,新建普通帳戶 A 並經過 SSH-Key 登錄 A 的方法 (歡迎指正:) OS: OS X 10.10.5