PS:本人純屬服務(wù)端小白,白的不能再白翎朱!有些地方可能描述的不是很準(zhǔn)確凛忿,還請方家多多指教!
背景:
ssh服務(wù)支持之中安全認(rèn)證機(jī)制荣回,就是密鑰登錄,這種方式是比較安全的登入方式。
因?yàn)橐话愕拿艽a方式登錄容易被密碼暴力破解诫隅,使用密鑰方式登入主機(jī)也是首推一種登入方式,比使用密碼的方式登錄更佳风题!
對于密鑰認(rèn)證的說明绕辖,大家可以上網(wǎng)去了解树碱,這里我只是記錄一下具體操作步驟框舔。
另外:因使用后續(xù)學(xué)習(xí)使用Ansible來實(shí)現(xiàn)自動(dòng)化運(yùn)維的時(shí)候需要再主控機(jī)登錄到其他控制端主機(jī)上,需要實(shí)現(xiàn)免密登錄主機(jī)的方式赎婚,所以再這里學(xué)習(xí)一下如何上傳對應(yīng)的私鑰和公鑰刘绣。
主要步驟說明:
1:使用系統(tǒng)自帶或工具利用密鑰生成器制作一對密鑰——一只公鑰(id_rsa.pub)和一只私鑰(id_rsa)
2:把公鑰添加到服務(wù)器 /root/.ssh/authorized_keys
3:客戶端(服務(wù)器、或SecureCRT 或 putty 或 xShell)利用私鑰即可完成認(rèn)證并登錄
注意事項(xiàng)
PS:在還沒有驗(yàn)證使用私鑰可以登入系統(tǒng)之前挣输,建議開啟密碼登入和密鑰登入兩種方式纬凤,等驗(yàn)證使用密鑰登入成功后,再關(guān)閉對應(yīng)的禁止root登入和使用密碼登錄系統(tǒng)的方式撩嚼。
避免使用密鑰無法登入移斩,但是又關(guān)閉了密碼登入的方式肚医!這個(gè)時(shí)候怎么解決,如果出現(xiàn)這種情況向瓷,暫時(shí)我還不知道怎么處理肠套?如有知道的朋友,不知道你是否可以告知一下滴呢猖任?
具體的操作步驟:
前提:
首先準(zhǔn)備好1臺主機(jī)(虛擬主機(jī))
192.168.74.128
圖示:
第1步:(192.168.74.128)在root登入的情況下執(zhí)行命令:
ssh-keygen -t rsa
[root@bogon ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): (回車)
按提示說選擇保存到哪個(gè)路徑你稚,直接按下回家即可
第2步:(192.168.74.128)直接三次回車,默認(rèn)保存在當(dāng)前路徑下
[root@bogon ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): (回車)
Enter passphrase (empty for no passphrase): (回車)
Enter same passphrase again: (回車)
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
c5:7e:44:73:4c:1a:db:67:a8:60:f6:de:bc:58:4a:2c root@bogon
The key's randomart image is:
+--[ RSA 2048]----+
| +oo |
| . . B.. |
| * + o o|
| = + . o |
| S . + |
| + o |
| E + + |
| o + . |
| o . |
+-----------------+
PS:
Enter file in which to save the key (/root/.ssh/id_rsa):
該命令提示的意思是:讓我們定義私鑰的存放路徑朱躺,默認(rèn)存在的路徑是在/root/.ssh/id_rsa的下面
Enter passphrase (empty for no passphrase):
該命令提示的意思是:定義私鑰的密碼刁赖,一般為了免密默認(rèn)的留空,直接的回車
Enter same passphrase again:
該命令提示的意思是:確認(rèn)密碼設(shè)置
經(jīng)過上面三次回車后长搀,最后在/root/.ssh/id_rsa下面生成了公鑰和私鑰
[root@bogon ~]# cd /root/.ssh/
[root@bogon .ssh]# ll
total 12
-rw-------. 1 root root 1675 Mar 2 11:02 id_rsa(私鑰)
-rw-r--r--. 1 root root 392 Mar 2 11:02 id_rsa.pub (公鑰)
-rw-r--r--. 1 root root 176 Feb 28 07:48 known_hosts
[root@bogon .ssh]#
關(guān)于是否設(shè)置密鑰的密碼信息:一般也是建議你設(shè)置宇弛,如果不設(shè)置的話,后續(xù)別人拿到你的密鑰源请,不輸入密碼的方式下就可以直接的使用密鑰登入了枪芒!當(dāng)然,也可以留空谁尸,實(shí)現(xiàn)無密碼登錄舅踪。
如果設(shè)置可密碼的話,密鑰鎖碼在使用私鑰時(shí)必須輸入良蛮,這樣就可以保護(hù)私鑰不被盜用抽碌。
第3步: 在(192.168.74.128)服務(wù)器上安裝公鑰
主要操作是:
復(fù)制公鑰內(nèi)容到/root/.ssh/authorized_keys
PS:因?yàn)槲覀兪鞘褂胹sh-keygen -t rsa方式生成相關(guān)密匙信息,所以此時(shí)默認(rèn)的會有對應(yīng)的:/root/.ssh/這個(gè)目錄存在决瞳,如果沒有的話(即使用其他ssh工具生成密鑰的時(shí)候)就需要收的創(chuàng)建此目錄.货徙。
另外:/root/.ssh/authorized_keys這個(gè)文件的名稱是固定不變的喲,不要寫錯(cuò)了皮胡!
[root@bogon ~]# mkdir -p /root/.ssh 創(chuàng)建目錄
[root@bogon ~]# chmod 700 /root/.ssh 更改目錄權(quán)限
[root@bogon ~]# cat /root/.ssh/id_rsa.pub
XXXXXXX內(nèi)容信息的信息
[root@bogon ~]# nano /root/.ssh/authorized_keys ( 編輯保存退出)
或者直接的:
[root@bogon ~]# cat id_rsa.pub >> /root/.ssh/authorized_keys
[root@bogon ~]$ chmod 600 /root/.ssh/authorized_keys
[root@bogon ~]$ chmod 700 /root/.ssh
或者其他方式復(fù)制到對應(yīng)的服務(wù)器下:
[root@bogon ~]$.ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10022 user@server"
[root@bogon ~]$.ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.241
再次查看生成的文件信息
[root@bogon .ssh]# ll
total 16
-rw-r--r--. 1 root root 392 Mar 2 11:37 authorized_keys
-rw-------. 1 root root 1675 Mar 2 11:02 id_rsa
-rw-r--r--. 1 root root 392 Mar 2 11:02 id_rsa.pub
-rw-r--r--. 1 root root 176 Feb 28 07:48 known_hosts
[root@bogon .ssh]#
第4步:(192.168.74.128)把私鑰提取出來保存到本地破婆,方便后面使用此密鑰進(jìn)行登入
[root@bogon .ssh]# sz id_rsa
rz
zmodem trl+C ?
100% 1 KB 0 KB/s 00:00:21 0 Errors
[root@bogon .ssh]#
關(guān)于lrzsz的一些知識點(diǎn):
root 賬號登陸后執(zhí)行以下命令:
1:安裝:yum install -y lrzsz
2:用說明
sz命令發(fā)送文件到本地:
# sz filename
rz命令本地上傳文件到服務(wù)器:
# rz
執(zhí)行該命令后,在彈出框中選擇要上傳的文件即可胸囱。
第5步:(192.168.74.128)關(guān)閉SELinux(線上是否一定要關(guān)閉呢祷舀?)
PS:因?yàn)檎冞@里是虛擬機(jī)注意!E氡省I殉丁!注意0啊J尾颉!允蜈!
注意T┒帧]锪!漩蟆! 如果是線上生產(chǎn)服務(wù)器的話垒探,要注意根據(jù)實(shí)際情況進(jìn)行選擇關(guān)閉喲!
因?yàn)檎冞@里是虛擬機(jī)怠李,而且SELinux是Centos系統(tǒng)自帶一種安全機(jī)制圾叼。如果我們這里不關(guān)掉這個(gè)安全機(jī)制的話,可能會出錯(cuò)捺癞。
臨時(shí)關(guān)閉:SELinux(下次重啟后還是會開啟)
[root@bogon .ssh]# setenforce 0
[root@bogon .ssh]#
徹底關(guān)閉需要:
[root@bogon .ssh]# nano /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
#把SELINUXTYPE 修改成為-disabled,然后保存夷蚊,并且重啟系統(tǒng)!
PS:經(jīng)過網(wǎng)友的提示 這個(gè)地方可能有問題注意K杞椤L韫摹!L拼 箱歧!注意!3估纭=行病;舜取汞幢!
應(yīng)該是把:
SELINUX=disabled
不要 誤將“SELINUXTYPE”看成“SELINUX”,設(shè)置了SELINUXTYPE參數(shù):
正確姿勢:
1:編輯
vi /etc/selinux/config#編輯防火墻配置文件
#SELINUX=enforcing#注釋掉
#SELINUXTYPE=targeted#注釋掉
SELINUX=disabled#增加
:wq!#保存退出微谓,
2:讓修改生效
[root@bogon .ssh]# setenforce 0
[root@bogon .ssh]#
第6步:(192.168.74.128)修改SSH配置森篷,打開密鑰登錄功能:
編輯修改 /etc/ssh/sshd_config 文件,進(jìn)行如下設(shè)置:
RSAAuthentication yes # 開啟密鑰登入的認(rèn)證方式
PubkeyAuthentication yes # 開啟密鑰登入的認(rèn)證方式
PermitRootLogin yes #此處請留意 root 用戶能否通過 SSH 登錄豺型,默認(rèn)為yes:
PasswordAuthentication yes #當(dāng)我們完成全部設(shè)置并以密鑰方式登錄成功后仲智,可以禁用密碼登錄。這里我們先不禁用姻氨,先允許密碼登陸
[root@bogon .ssh]# service sshd restart #最后钓辆,重啟 SSH 服務(wù):
PS:關(guān)鍵修改參數(shù)一些說明:
#禁用root賬戶登錄,非必要肴焊,但為了安全性前联,請配置
PermitRootLogin no
# 是否讓 sshd 去檢查用戶家目錄或相關(guān)檔案的權(quán)限數(shù)據(jù),
# 這是為了擔(dān)心使用者將某些重要檔案的權(quán)限設(shè)錯(cuò)娶眷,可能會導(dǎo)致一些問題所致似嗤。
# 例如使用者的 ~.ssh/ 權(quán)限設(shè)錯(cuò)時(shí),某些特殊情況下會不許用戶登入
StrictModes no
# 是否允許用戶自行使用成對的密鑰系統(tǒng)進(jìn)行登入行為届宠,僅針對 version 2烁落。
# 至于自制的公鑰數(shù)據(jù)就放置于用戶家目錄下的 .ssh/authorized_keys 內(nèi)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
#有了證書登錄了乘粒,就禁用密碼登錄吧,安全要緊
PasswordAuthentication no
第7步:(192.168.74.128)然后使用SecureCRTPortable進(jìn)行登入測試:
[root@bogon .ssh]# logout
退出使用其他方式登入: