ECS服務器配置密鑰登錄及常用日志


一、介紹

  1、SSH(22端口)是Secure Shell Protocol的簡寫,由IETF網絡工作小組(Network Working Group)制定;在進行數據傳輸之前,SSH先對聯機數據包通過加密技術進行加密處理,加密后在進行數據傳輸。確保了傳遞的數據安全。SSH服務支持安全認證機制,就是密鑰登錄,這種方式是比較安全的登入方式。本文將實際操作在服務器中創建新用戶,同時使用密鑰進行登錄(免密碼)。

  2、客戶端使用iterm2 和 FinalShell進行遠程連接,服務器系統為CentOS7.4。

  3、記錄一些常用日志的查看方式。

 

二、步驟簡介

  1、購買阿里ECS服務器,配置相關安全組,設置root密碼等(這些過程省略介紹)。

  2、在服務器上創建其他用戶。

  3、使用相應用戶登錄服務器,並創建密鑰對。

  4、在服務器安裝公鑰,同時,將創建好的私鑰,下載到本地保存。

  5、設置服務器ssh的配置文件。

  6、在本地的各類終端中加載私鑰,實現遠程(免密碼)登錄。

 

  Attention:本文主要講述的是客戶端登錄到遠程服務器上生成密鑰對,同時密鑰對記錄在服務器上,私鑰拷貝到本地。當然,也可以客戶端在本地生成好密鑰對,然后將公鑰上傳到服務器,自己保留好本地生成的私鑰,同樣按照上面第4步進行服務器公鑰的安裝,這里不做特殊說明了。

 

 

三、詳細步驟說明

  1、用戶操作

  (1) 創建用戶 ,/home 目錄下會自動生成相應的用戶文件夾

1 [root@cleven_server ~]# adduser new_user
2 [root@cleven_server ~]# passwd new_user
3 更改用戶 new_user 的密碼 。
4 新的 密碼:
5 重新輸入新的 密碼:
6 passwd:所有的身份驗證令牌已經成功更新。
7 [root@cleven_server ~]#

  (2)查看、刪除用戶

     <1>  查看系統中有哪些用戶:cut -d : -f 1 /etc/passwd

     <2>  查看可以登錄系統的用戶:cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1

     <3>  用戶列表文件:/etc/passwd          用戶組列表文件:/etc/group

     <4>  查看登錄用戶:who    查看某一用戶:w 用戶名 

     <5>  查看用戶登錄歷史記錄:last

     <6>  刪除用戶:userdel -rf name

  (3)為用戶分配root權限 (可選)

[root@cleven_server ~]# vim /etc/sudoers

或者,root用戶下 直接輸入命令 visudo 也即可修改
[root@cleven_server ~]# visudo

    找到該行:

##Allow root to run any commands anywhere
root     ALL=(ALL)     ALL

    在下面添加:

1 ## Allow root to run any commands anywhere
2 root    ALL=(ALL)       ALL
3 new_user ALL=(ALL)       ALL 

 

  2、生成密鑰  (客戶端連接服務器,在服務器端生成密鑰)

  (1)確認服務器SSH服務

    <1> 檢查ssh的安裝 :service sshd status  或者 systemctl status sshd

    <2> 如果提示錯誤,則進行安裝:yum install sshd 或者 yum install openssh-server

    <3> 啟動:service sshd start 或者 systemctl start sshd

    <4> 重啟:service sshd restart 或者 systemctl restart sshd

  (2)切換new_user登錄,生成密鑰對

 1 [new_user@cleven_server /]$ ssh-keygen -t rsa
 2 Generating public/private rsa key pair.
 3 Enter file in which to save the key (/home/new_user/.ssh/id_rsa):
 4 Created directory '/home/new_user/.ssh'.
 5 Enter passphrase (empty for no passphrase):
 6 Enter same passphrase again:
 7 Your identification has been saved in /home/new_user/.ssh/id_rsa.
 8 Your public key has been saved in /home/new_user/.ssh/id_rsa.pub.
 9 The key fingerprint is:
10 SHA256:0KrowSHBBZ16tHjaQhr+2bcbEyqonlFvkjHxjrMfKCI new_user@cleven_server
11 The key's randomart image is:
12 +---[RSA 2048]----+
13 | .o..            |
14 |. .+   .         |
15 |..+.. . .        |
16 |.= +o  o         |
17 |=.*+ ...S        |
18 |.*o+O.. .        |
19 |E+*B+* o         |
20 |+.++*...o        |
21 |oo.....oo        |
22 +----[SHA256]-----+
23 [new_user@cleven_server /]$

  (3)上文注解

    ssh-keygen -t rsa 命令后一路回車即可:

    <1>  Enter file in which to save the key (/home/new_user/.ssh/id_rsa):
      該命令提示的意思是:讓我們定義私鑰的存放路徑,默認存在的路徑是/home/new_user/.ssh/id_rsa (如果是root賬號,路徑在/root/.ssh/id_rsa)

    <2> Enter passphrase (empty for no passphrase):
      該命令提示的意思是:定義私鑰的密碼,一般為了免密默認的留空,直接的回車

    <3> Enter same passphrase again:
      該命令提示的意思是:確認密碼設置

    經過上面三次回車后,最后在/home/new_user/.ssh/id_rsa下面生成了公鑰和私鑰


  (4)查看生成的密鑰(.pub為公鑰)
1 [new_user@cleven_server /]$ cd /home/new_user/.ssh
2 [new_user@cleven_server .ssh]$ ll
3 總用量 8
4 -rw------- 1 new_user new_user 1675 5月  21 13:06 id_rsa
5 -rw-r--r-- 1 new_user new_user  404 5月  21 13:06 id_rsa.pub
6 [new_user@cleven_server .ssh]$

 

 3、服務器上安裝公鑰

  注意:使用ssh-keygen -t rsa方式生成相關密匙信息,此時默認的會有對應的:/home/new_user/.ssh/這個目錄存在,如果沒有的話(使用其他ssh工具生成密鑰或者在客戶端本地生成密鑰的時候)就需要手動創建此目錄。

  (1)安裝公鑰:主要是把 id_rsa.pub 內容復制到 /home/new_user/.ssh/authorized_keys

1 [new_user@cleven_server ~]$ cd /home/new_user/.ssh
2 [new_user@cleven_server .ssh]$ cat id_rsa.pub >> authorized_keys
3 [new_user@cleven_server .ssh]$ chmod 600 authorized_keys  (僅用戶自身有讀寫權限)
4 [new_user@cleven_server .ssh]$ chmod 700 /home/new_user/.ssh  (僅用戶自身有讀寫權限)
5 [new_user@cleven_server .ssh]$

  (2)查看安裝

     注意:文件authorized_keys 和 文件夾.ssh 的所有者必須是后面進行SSH遠程登錄的用戶(同名),如果不同,使用命令:chown 用戶名  文件名  -R  來更改所有者。

1 [new_user@cleven_server .ssh]$ ll
2 總用量 12
3 -rw------- 1 new_user new_user  404 5月  21 13:29 authorized_keys
4 -rw------- 1 new_user new_user 1675 5月  21 13:06 id_rsa
5 -rw-r--r-- 1 new_user new_user  404 5月  21 13:06 id_rsa.pub
6 [new_user@cleven_server .ssh]$

 

 4、下載私鑰到本地,后面將使用此密鑰進行登錄(可以將id_rsa重命名為 new_user_ECS.pem,方便管理和區分)

  (1)使用scp命令從遠程拷貝到本地,以下是在本地終端輸入:

Cleven:~ Cleven$ scp new_user@39.xx.xx.xx:/home/new_user/.ssh/id_rsa /User/Cleven/Desktop

  (2)客戶端使用FTP軟件(FileZilla)

      

 

 

  5、在服務器上配置SSH

  (1)編輯配置文件。注意,是sshd_config(服務端配置文件) ,不是ssh_config(客戶端配置文件)

[root@cleven_server ~]# vim  /etc/ssh/sshd_config

  (2)配置內容(幾個關鍵處)

#root用戶能否通過 SSH 登錄,默認為yes
 PermitRootLogin yes 
  
#完成全部設置並以密鑰方式登錄成功后,可以禁用密碼登錄。為了安全,建議禁用,但是注意實在密鑰登錄可行之后禁用
 PasswordAuthentication yes 
 
#默認為yes,是否讓 sshd 去檢查用戶家目錄或相關檔案的權限數據。如果設置成yes必需保證存放公鑰的文件夾的擁有者與登陸用戶名是相同的。
#這是為了擔心使用者將某些重要檔案的權限設錯,可能會導致一些問題所致。例如使用者的 ~.ssh/ 權限設錯時,某些特殊情況下會不許用戶登入(設置成no可登錄)
#這通常是必要的,因為新手經常會把自己的目錄和文件設成任何人都有寫權限。
 StrictModes no
  
#是否允許密鑰登錄,僅針對SSH第一代通信協議
#在CentOS7.4中被廢除了,CentOS7開始預設使用第二代通訊協議
#第二代SSH通訊協議的密鑰驗證選項是
PubkeyAuthentication
RSAAuthentication yes
#允許公鑰認證(密鑰登錄),自制的公鑰數據就放置於用戶家目錄下的.ssh/authorized_keys 內
#替代了第一代協議中的
RSAAuthentication
PubkeyAuthentication yes
AuthorizedKeysFile
~/.ssh/authorized_keys

 

 

  6、本地使用密鑰完成登錄 ,如出現異常,可使用 ssh -v檢查

  (1)iterm2

    <1> 配置描述文件

 

 

    <2> 本地添加密鑰:第4步中下載到本地的密鑰

➜  / ssh-add -k /Users/cleven/Desktop/new_user_ECS.pem

    <3> 開啟登錄

    

 

  (2)FinalShell 

    

 

四、查看常用日志及包括用戶登錄記錄

 1、列舉一些常見的日志文件:/var/log

  注:可以用file命令查看文件的類型。大多數日志文件是純文本文件,可以用cat 、head來查看。還有一些是二進制日志文件,需要用專用的命令來查看。

日志 類 型 打開命令 解釋
secure

 

文本                                  

 

cat、head、tail 等                                               

安全相關,主要是用戶認證,如登錄 、創建和刪除賬號 、sudo等
audit/audit.log                                     文本  cat、head、tail 審計日志。跟用戶賬號相關
messages 文本 cat、head、tail 記錄系統和軟件的絕大多數消息。如服務啟動 、停止 、服務錯誤等。                         
boot.log 文本 cat、head、tail 系統啟動日志。能看到啟動流程。
cron 文本 cat、head、tail 計划任務日志。會記錄crontab計划任務的創建、執行信息。
dmesg 文本 dmesg、cat等 硬件設備信息(device)。純文本,也可以用dmesg命令查看。
yum.log 文本 cat、head、tail yum軟件的日志。記錄yum安裝、卸載軟件的記錄。
lastlog 二進制 lastlog 最后登錄的日志。
btmp 二進制 lastb 登錄失敗的信息(bad)。
wtmp 二進制 last 所有正確登錄的用戶,往回搜索wtmp來顯示自從文件第一次創建以來登錄過的用戶。                                    
utmp 二進制

w,who ,user                                                

記錄當前登錄進系統的各個用戶。

w命令查詢utmp文件並顯示當前系統中每個用戶和它所運行的進程信息。     

who命令查詢utmp文件並報告當前登錄的每個用戶。

user用單獨的一行打印出當前登錄的用戶,每個顯示的用戶名對應一個登錄會話                                                                                                                                                                                                 

  

 2、剔除在線用戶步驟

 (1)查看在線用戶 : who   , w

 (2)查看在線用戶pid : ps -ef | grep pts/1

 (3)殺掉進程,剔除用戶:kill -9 23091

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM