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