Linux之SSH安全,使用密鑰對驗證


Q:A服務器登錄到B服務器,但為了安全起見,不想輸入B服務器的用戶帳號密碼,該如何實現?

A:可以使用密鑰對驗證,實現在A服務器無需B服務器的用戶帳號密碼即可登錄到B服務器。

 

 

登錄驗證對象:服務器中的本地用戶帳號

登錄驗證方式:

  密碼驗證:核對用戶名、密碼是否匹配

  密鑰對驗證:核對客戶的私鑰、服務端公鑰是否匹配

# vim /etc/ssh/sshd_config

PasswordAuthentication yes   // 密碼驗證

PubkeyAuthentication yes   //密鑰對驗證

AuthorizedKeysFile .ssh/authorized_keys  // 密鑰保存地方

# systemctl restart ssh.service

 

構建密鑰對驗證的SSH體系:

第一步:創建密鑰對(在客戶端創建,創建后包含私鑰和公鑰,形成一個密鑰對)

  私鑰文件:id_rsa

  公鑰文件:id_rsa.pub

# ssh-keygen -t rsa

// 設置密鑰保存位置

// 設置密鑰口令

【私鑰權限為:600

公鑰權限為:644

此加密方式為非對稱加密,私鑰文件一定不能公開】

第二步:上傳公鑰文件到服務端

第三步:導入公鑰文件

以下命令把第二步和第三步合成一起實現上傳並導入:

# ssh-copy-id remote_user_name@remote_ip_address

 

例子:

導入公鑰文件前,使用guest用戶切換到user001用戶:
guest@debian:~$ ssh user001@192.168.9.119
user001@192.168.9.119's password:

開始上傳並導入公鑰文件:

    使用guest用戶上傳並導入公鑰文件到user001用戶,上傳並導入成功后,使用guest用戶切換到user001用戶,無需user001的密碼即可登錄到user001(如果guest用戶創建密鑰對時候創建了密碼,則需輸入密鑰口令):

guest@debian:~$ ssh-copy-id user001@192.168.9.119

// 輸入user01的密碼

// 上傳並導入成功,在user001用戶的 ~/.ssh 目錄下有一個文件 authorized_keys ,即上傳並導入后的公鑰文件

// 使用guest用戶切換到user001,無需user001的密碼即可登錄

guest@debian:~$ ssh user001@192.168.9.119
Enter passphrase for key '/home/guest/.ssh/id_rsa':

 


免責聲明!

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



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