【轉】服務器添加新用戶用ssh-key 登陸,並禁用root用戶 密碼登陸

【轉】Linux最高權限用戶root,默承認以直接登陸sshd。爲了提升服務器的安全度,須要對它進行禁止,使得攻擊者沒法經過暴力破解來獲取root權限。linux

 

 ps: 如下內容皆非原創,只是我的的一個實踐過程的一個記錄,記錄下來一是怕本身忘記,而是給像我那樣的小白,能夠一篇搞定服務器安全登陸問題。主要參考了幾個優秀的博客文章,皆在文章後面列出,感謝原創!git

1、添加新用戶而且修改sshd 默認端口

  1.1 新建用戶

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.2修改sshd默認端口

雖然更改端口沒法在根本上抵禦端口掃描,可是,能夠在必定程度上提升防護。

1.打開sshd配置文件

#vi /etc/ssh/sshd_config

2.找到#Port 22字段刪掉#,將22改成其餘不被使用的端口

服務器端口最大能夠開到65536

3.重啓sshd服務

#service sshd restart

4.別忘了修改登錄工具那的端口設置。

2、爲新用戶添加ssh-key登陸,禁止密碼登陸

 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/id_dsa

來自: http://man.linuxde.net/ssh-add
 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 倉庫名

 

 

參考博客:

ssh禁止root用戶直接登陸並修改默認端口;

Linux 0 基礎,在 VPS 上禁止 ROOT 帳戶,禁用密碼登陸,新建普通帳戶 A 並經過 SSH-Key 登錄 A 的方法 (歡迎指正:) OS: OS X 10.10.5

linux普通用戶獲取管理員權限

相關文章
相關標籤/搜索