通過SSH服務登陸linux服務器(版本RHEL7)
SSH服務概述:是一種能夠以安全的方式提供遠程登陸的協議,也是目前遠程管理linux系統的首選方式。在此之前,我們一般使用FTP或者telnet來遠程登陸,因為它們是使用明文的形式在網絡中傳輸賬戶密碼和數據信息,因此很不安全,容易受到中間人攻擊及非法篡改傳輸的數據信息,重則直接抓取服務器的賬戶密碼。
使用ssh協議遠程登陸的優點:
- 基於口令的驗證——用賬戶和密碼來驗證登錄;
- 基於密鑰的驗證——需要在本地生成密鑰對,然后把密鑰對中的公鑰上傳至服務器,並與服務器中的公鑰進行比較。
方法一:通過用戶名和密碼的方式登錄(Xshell為例)
- 輸入用戶名
- 輸入密碼
默認的狀態下,linux服務器的sshd服務是開啟的,無需任何服務器配置就可以直接登錄上,前提是保證客戶端與服務器網絡可以通。
- 如果為了增加安全性,不允許以管理員用戶登陸,則需修改配置文件:
sshd主配置文件:/etc/服務名稱/服務名稱.conf(重要的配置信息)
ssh_config是ssh客戶端配置文件
sshd_config是ssh服務器配置文件
在這里我們修改服務器端的配置文件:
vim /etc/ssh/sshd_config
修改配置文件
systemctl restart sshd //重啟ssh服務(修改配置文件后重啟服務配置文件才會生效)
測試發現root用戶無法登陸
方法二:通過密鑰的方式登錄
-
Linux客戶端生成密鑰:
[root@CeShiJi ~]# ssh-keygen
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
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:
00:f5:78:00:a0:26:94:e2:67:d6:65:70:7a:38:99:d4 root@CeShiJi.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| .o.o==. |
|oo ..*E |
|=. .*=.o |
|o. + .oo |
| + S |
| |
| |
| |
| |
+-----------------+
[root@CeShiJi ~]#
上傳公鑰至服務端,在root@192.168.88.100's password: 后面輸入服務器端密碼。
修改服務端配置文件,讓其禁止密碼驗證登錄。
systemctl restart sshd //重啟服務
驗證發現,咱們無需密碼和用戶名直接就可以登錄到服務器上。
- 通過xshell創建密鑰:
生成密鑰對。
下一步,下一步。
為密鑰設置密碼及名稱,密碼可以為空。
公鑰格式可以選擇openssh或者IETF SECSH格式。將公鑰保存為文件。
將公鑰文件通過軟件上傳到linux服務器里。
[root@localhost ~]# cat test_1.pub >> .ssh/authorized_keys
將上傳的公鑰文件安裝到authorized_keys文件中。
選擇剛剛新建的test_1s私鑰,如果上面設置了密鑰密碼則在此處填寫,否則為空。
注意:看有的人會遇到權限問題,解決方法:
ssh-keygen -i -f test_1.pub >> .ssh/authorized_keys
chmod 755 /home/houliangzhou/.ssh
chmod 644 authorized_keys