1. 程式人生 > >ssh秘鑰登錄

ssh秘鑰登錄

ssh ssh秘鑰登錄 詳細解答

自己在網上找ssh秘鑰登錄的教程,發現寫的都不符合我迷糊的那一點:然後自己查man幫助。

剛開始的時候不知道Linux如何充當SSH client,然後自己已解決,解決見下

本地生成密鑰(public key private key)。其中,public key存放在欲登錄的服務器上,而privatekey為特定的客戶機所持有。

當客戶機向服務器發出建立安全連接的請求時,首先發送自己的public key,如果這個public key是被服務器所允許的,服務器就發送一個經過public key加密的隨機數據給客戶機,這個數據只能通過private key解密,客戶機將解密後的信息發還給服務器,服務器驗證正確後即確認客戶機是可信任的,從而建立起一條安全的信息通道。

通過這種方式,客戶機不需要向外發送自己的身份標誌“private key”即可達到校驗的目的,並且private key是不能通過public key反向推斷出來的。這避免了網絡竊聽可能造成的密碼泄露。客戶機需要小心的保存自己的private key,以免被其他人竊取。(這就是為什麽先在本地生成密鑰,而不是在登錄你的vps以後生成然後把私鑰下載到本地,任何時刻都要保證私鑰處在一個安全的地方)


使用想遠程連接SSH服務器哪個用戶,在客戶端上就必須用哪個用戶生成秘鑰對,公鑰必須放在服務器上對應用戶的家目錄下面

m01:172.16.1.61充當ssh client

backup172.16.1.41充當

ssh server

在客戶端操作:

[root@m01 ~]# hostname #獲取當前主機的用戶名

m01

[root@m01 ~]# ifconfig eth2|awk -F "[ :]+" 'NR==2 {print $4}' #獲取當前網絡的IP地址

172.16.1.61

#生成一個類型為rsa1024 bits的秘鑰,-f指定生成的秘鑰文件存放的位置

[root@m01 ~]# ssh-keygen -t rsa -b 1024 -f /root/.ssh/id_backup (批量管理的時候可以通過這個名字來確定是那臺服務器的秘鑰)

Generating public/private rsa key pair.

下次使用秘鑰需要輸入的密碼,批量管理的時候這個一般都不設

Enter passphrase (empty for no passphrase):

#重復上面那個密碼

Enter same passphrase again:

#私鑰存放的位置。

Your identification has been saved in /root/.ssh/id_backup.

#公鑰存放的位置

Your public key has been saved in /root/.ssh/id_backup.pub.

The key fingerprint is:

63:ec:7a:14:4e:f8:db:80:f9:7b:cc:c6:40:6e:f2:69 root@m01

The key's randomart image is:

+--[ RSA 1024]----+

| |

| |

| . |

| ..+ |

| OS. |

| +oO. |

| *.X |

| .E B |

| .o.+ |

+-----------------+

[root@m01 ~]# ls /root/.ssh/ #查看剛才秘鑰有沒有生成成功

id_backup id_backup.pub known_hosts

#把公鑰上傳到ssh 服務端。

[root@m01 ~]# scp /root/.ssh/id_backup.pub [email protected]:/root/

[email protected]'s password: #輸入遠程服務器的root密碼

id_backup.pub 100% 218 0.2KB/s 00:00

在服務端:

[root@backup ~]# hostname

backup

[root@backup ~]# ifconfig eth2 | awk -F "[ :]+" 'NR==2 {print $4}'

172.16.1.41

[root@backup ~]# ls

id_backup.pub

[root@backup ~]# ls /root/

id_backup.pub

[root@backup ~]# mkdir /root/.ssh

[root@backup ~]# chmod 700 /root/.ssh/ #這個dir的權限必須為700

[root@backup ~]# touch /root/.ssh/authorized_keys

#公鑰存放這個文件裏,由配置文件AuthorizedKeysFile 這個選項控制的

[root@backup ~]# chmod 600 /root/.ssh/authorized_keys #權限必須為600

[root@backup ~]# cat id_backup.pub >>/root/.ssh/authorized_keys #把剛才上傳文件追加到這個文件裏面,這個是用於用戶身份驗證的公鑰的文件。

/etc/ssh/sshd_config配置文件裏面這兩個選項必須打開

RSAAuthentication yes

PubkeyAuthentication yes

客戶端操作完成之後在客戶端上使用秘鑰登錄:

#-i指定私鑰存在的位置

[root@m01 ~]# ssh -i /root/.ssh/id_backup [email protected]

Last login: Sat May 19 19:21:08 2018 from 10.0.0.1

[root@backup ~]# hostname

backup

[root@backup ~]# exit

logout

Connection to 172.16.1.41 closed.


ssh秘鑰登錄