Linux服务器安全之用户密钥认证登录(基于CentOS 7.0系统)
生活随笔
收集整理的這篇文章主要介紹了
Linux服务器安全之用户密钥认证登录(基于CentOS 7.0系统)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、 密鑰簡介
在Linux下,遠程登錄系統有兩種認證方式:密碼認證和密鑰認證。密碼認證方式是一種傳統的安全策略。設置一個相對復雜的密碼,對系統安全能起到一定的防護作用,但是也面臨一些其他問題,例如密碼暴力破解、密碼泄露、密碼丟失等,同時過于復雜的密碼也會對運維工作造成一定的負擔。
密鑰認證是一種新型的認證方式,公用密鑰存儲在遠程服務器上,專用密鑰保存在本地,當需要登錄系統時,通過本地專用密鑰和遠程服務器的公用密鑰進行配對認證,如果認證成功,就可以成功登錄系統。這種認證方式避免了被暴力破解的危險,同時只要保存在本地的專用密鑰不被黑客盜用,攻擊者一般無法通過密鑰認證的方式進入系統。?
二、 服務器端密鑰的生成和配置
OpenSSH的密鑰認證體系有兩種:RSA和DSA,分別是兩種不同的加解密算法。T710服務器中管理員主要采用RSA密鑰認證。用戶在使用初始密鑰登錄后,可自行修改使用其他密鑰認證方法。
服務器端RSA密鑰的生成和配置步驟如下:
1. ? ? ?在用戶目錄下新建一個.ssh目錄,并將其目錄權限改為700(僅用戶自身有讀寫操作權限):
# mkdir .ssh
# chmod 700 .ssh
2. ? ? ?進入.ssh目錄,使用ssh-keygen命令生成rsa密鑰對:
# ssh-keygen –t rsa ?(一路回車即可)
3. ? ? ?這時生成了兩個文件:id_rsa和id_rsa.pub,其中前一個為私鑰,后一個為公鑰,公鑰須保留在服務器上,私鑰拷貝到客戶端機器上
4. ? ? ?在.ssh目錄中新建一個文件名為:authorized_keys,將公鑰內容拷貝到這個文件中,并將文件權限改為600(僅用戶自身有讀寫權限)
# touch authorized_keys
# cat id_rsa.pub >> authorized_keys
# chmod 600 authorzied_keys
到此,服務器端的密鑰設置完成,這里需注意要保證.ssh和authorized_keys都僅用戶自身有寫權限,否則驗證無效,這也是系統處于安全性考慮做的設置。
三、客戶端密鑰的設置
首先我們需要將在服務器端生成的私鑰id_rsa拷貝到要用來登錄服務器的客戶端電腦。接下來根據客戶端電腦操作系統的不同進行分別說明:
Windows系統?
在Windows系統下,一般我們采用不同的X server工具來登錄,需要先將私鑰導入到登錄工具的密鑰管理器,建立一個新的連接,用戶名和主機的填寫與采用用戶名密碼登錄一樣,登錄不再選擇”Password”而是”Public key",User Name填寫自己的登錄用戶名,User Key選擇之前導入的服務器私鑰 ,保存之后,即可無密碼登錄。
Linux系統
Linux系統下設置同樣先將服務器私鑰拷貝到客戶端
1. ? ? ?與服務器端一樣,在用戶目錄下新建一個.ssh目錄,并將其目錄權限改為700(僅用戶自身有讀寫操作權限):
? ? ? ?# mkdir .ssh
? ? ? # chmod 700 .ssh
2. ? ? ?將私鑰id_rsa拷貝到.ssh目錄下,檢查文件權限是否為600,如果不是,需要更改文件權限為600
? ? ? # mv ?id_rsa ?./.ssh
? ? ? # chmod 600 id_rsa
3. ? ? ?這時即設置完畢,輸入ssh命令,即可直接連接到服務器,無需輸入用戶名密碼
? ? ? # ssh –l 用戶名 服務器IP
4. ? ? ?如果需要從客戶端通過密鑰認證的方式登錄不同的服務器,私鑰的名稱不能都是用id_rsa,這是可以在.ssh目錄下建立一個config文件來進行區分,config文件權限同樣設為600
? ? ? # touch config
? ? ? # chmod 600 config
5. ? ? ?為config文件添加內容如下:
? ? ? User username ? ? ?//username 填寫自己的登錄用戶名
? ? ? Host server_IP ? //設置服務器IP
? ? ? IdentityFile ~/.ssh/rsa_file ? //rsa_file填寫私鑰名稱
? ? ? Port 22
這樣,用戶可以將私鑰id_rsa改為與config文件中irs_file同名的文件名,就可以匹配登錄服務器了。 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
在Linux下,遠程登錄系統有兩種認證方式:密碼認證和密鑰認證。密碼認證方式是一種傳統的安全策略。設置一個相對復雜的密碼,對系統安全能起到一定的防護作用,但是也面臨一些其他問題,例如密碼暴力破解、密碼泄露、密碼丟失等,同時過于復雜的密碼也會對運維工作造成一定的負擔。
密鑰認證是一種新型的認證方式,公用密鑰存儲在遠程服務器上,專用密鑰保存在本地,當需要登錄系統時,通過本地專用密鑰和遠程服務器的公用密鑰進行配對認證,如果認證成功,就可以成功登錄系統。這種認證方式避免了被暴力破解的危險,同時只要保存在本地的專用密鑰不被黑客盜用,攻擊者一般無法通過密鑰認證的方式進入系統。?
二、 服務器端密鑰的生成和配置
OpenSSH的密鑰認證體系有兩種:RSA和DSA,分別是兩種不同的加解密算法。T710服務器中管理員主要采用RSA密鑰認證。用戶在使用初始密鑰登錄后,可自行修改使用其他密鑰認證方法。
服務器端RSA密鑰的生成和配置步驟如下:
1. ? ? ?在用戶目錄下新建一個.ssh目錄,并將其目錄權限改為700(僅用戶自身有讀寫操作權限):
# mkdir .ssh
# chmod 700 .ssh
2. ? ? ?進入.ssh目錄,使用ssh-keygen命令生成rsa密鑰對:
# ssh-keygen –t rsa ?(一路回車即可)
3. ? ? ?這時生成了兩個文件:id_rsa和id_rsa.pub,其中前一個為私鑰,后一個為公鑰,公鑰須保留在服務器上,私鑰拷貝到客戶端機器上
4. ? ? ?在.ssh目錄中新建一個文件名為:authorized_keys,將公鑰內容拷貝到這個文件中,并將文件權限改為600(僅用戶自身有讀寫權限)
# touch authorized_keys
# cat id_rsa.pub >> authorized_keys
# chmod 600 authorzied_keys
到此,服務器端的密鑰設置完成,這里需注意要保證.ssh和authorized_keys都僅用戶自身有寫權限,否則驗證無效,這也是系統處于安全性考慮做的設置。
三、客戶端密鑰的設置
首先我們需要將在服務器端生成的私鑰id_rsa拷貝到要用來登錄服務器的客戶端電腦。接下來根據客戶端電腦操作系統的不同進行分別說明:
Windows系統?
在Windows系統下,一般我們采用不同的X server工具來登錄,需要先將私鑰導入到登錄工具的密鑰管理器,建立一個新的連接,用戶名和主機的填寫與采用用戶名密碼登錄一樣,登錄不再選擇”Password”而是”Public key",User Name填寫自己的登錄用戶名,User Key選擇之前導入的服務器私鑰 ,保存之后,即可無密碼登錄。
Linux系統
Linux系統下設置同樣先將服務器私鑰拷貝到客戶端
1. ? ? ?與服務器端一樣,在用戶目錄下新建一個.ssh目錄,并將其目錄權限改為700(僅用戶自身有讀寫操作權限):
? ? ? ?# mkdir .ssh
? ? ? # chmod 700 .ssh
2. ? ? ?將私鑰id_rsa拷貝到.ssh目錄下,檢查文件權限是否為600,如果不是,需要更改文件權限為600
? ? ? # mv ?id_rsa ?./.ssh
? ? ? # chmod 600 id_rsa
3. ? ? ?這時即設置完畢,輸入ssh命令,即可直接連接到服務器,無需輸入用戶名密碼
? ? ? # ssh –l 用戶名 服務器IP
4. ? ? ?如果需要從客戶端通過密鑰認證的方式登錄不同的服務器,私鑰的名稱不能都是用id_rsa,這是可以在.ssh目錄下建立一個config文件來進行區分,config文件權限同樣設為600
? ? ? # touch config
? ? ? # chmod 600 config
5. ? ? ?為config文件添加內容如下:
? ? ? User username ? ? ?//username 填寫自己的登錄用戶名
? ? ? Host server_IP ? //設置服務器IP
? ? ? IdentityFile ~/.ssh/rsa_file ? //rsa_file填寫私鑰名稱
? ? ? Port 22
這樣,用戶可以將私鑰id_rsa改為與config文件中irs_file同名的文件名,就可以匹配登錄服務器了。 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的Linux服务器安全之用户密钥认证登录(基于CentOS 7.0系统)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言整数加减法示例
- 下一篇: linux 其他常用命令