SSH無密碼登錄:只需兩個簡單步驟 (Linux)


轉載自https://www.linuxdashen.com/ssh-key%ef%bc%9a%e4%b8%a4%e4%b8%aa%e7%ae%80%e5%8d%95%e6%ad%a5%e9%aa%a4%e5%ae%9e%e7%8e%b0ssh%e6%97%a0%e5%af%86%e7%a0%81%e7%99%bb%e5%bd%95#comment-2582

如果你管理一台Linux服務器,那么你就會知道每次SSH登錄時或者使用scp復制文件時都要輸入密碼是一個多么繁瑣的過程.這篇教程介紹使用SSH Key來實現SSH無密碼登錄,而且使用scp復制文件時也不需要再輸入密碼.除了方便SSH登錄,scp復制文件外,SSH無密碼登錄也為Linux服務器增加了又一道安全防線

SSH無密碼登錄的設置步驟

  1. 首先我們在自己的Linux系統上生成一對SSH Key:SSH密鑰和SSH公鑰.密鑰保存在自己的Linux系統上。
  2. 然后公鑰上傳到Linux服務器.之后我們就能無密碼SSH登錄了.SSH密鑰就好比是你的身份證明.

1在自己的Linux系統上生成SSH密鑰和公鑰

打開終端,使用下面的ssh-keygen來生成RSA密鑰和公鑰.-t表示type,就是說要生成RSA加密的鑰匙.

ssh-keygen -t rsa

RSA也是默認的加密類型.所以你也可以只輸入ssh-keygen.默認的RSA長度是2048位.如果你非常注重安全,那么可以指定4096位的長度.

ssh-keygen -b 4096 -t rsa

生成SSH Key的過程中會要求你指定一個文件來保存密鑰,按Enter鍵使用默認的文件就行了.然后需要輸入一個密碼來加密你的SSH Key.密碼至少要20位長度.SSH密鑰會保存在home目錄下的.ssh/id_rsa文件中.SSH公鑰保存在.ssh/id_rsa.pub文件中.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/matrix/.ssh/id_rsa):  按Enter鍵
Enter passphrase (empty for no passphrase):   輸入一個密碼
Enter same passphrase again:   再次輸入密碼
Your identification has been saved in /home/matrix/.ssh/id_rsa.
Your public key has been saved in /home/matrix/.ssh/id_rsa.pub.
The key fingerprint is:
e1:dc:ab:ae:b6:19:b0:19:74:d5:fe:57:3f:32:b4:d0 matrix@vivid
The key's randomart image is:
+---[RSA 4096]----+
| .. |
| . . |
| . . .. . |
| . . o o.. E .|
| o S ..o ...|
| = ..+...|
| o . . .o .|
| .o . |
| .++o |
+-----------------+

查看.ssh/id_rsa文件就會看到,這個文件是經過加密的(encrypted).也就是用你輸入的密碼來加密.

less .ssh/id_rsa

SSH無密碼登錄

2將SSH公鑰上傳到Linux服務器

可以使用ssh-copy-id命令來完成.

ssh-copy-id username@remote-server

SSH無密碼登錄

輸入遠程用戶的密碼后,SSH公鑰就會自動上傳了.SSH公鑰保存在遠程Linux服務器的.ssh/authorized_keys文件中.

上傳完成后,SSH登錄就不需要再次輸入密碼了.但是首次使用SSH Key登錄時需要輸入一次SSH密鑰的加密密碼.(只需要輸入一次,將來會自動登錄,不再需要輸入密鑰的密碼.)

使用scp命令來傳送文件時也不需要輸入密碼.

SSH Key的知識

Linux系統有一個鑰匙環(keyring)的管理程序.鑰匙環受到用戶登錄密碼的保護.當你登錄Linux系統時,會自動解開鑰匙環的密碼,從而可訪問鑰匙環.SSH的密鑰和公鑰也存儲在鑰匙環.所以初次使用SSH密鑰登錄遠程Linux服務器時需要輸入一次SSH密鑰的密碼.而將來使用SSH密鑰登錄時不再輸入密碼.Ubuntu的鑰匙環程序是seahorse.

SSH密鑰就好比是你的身份證明.遠程Linux服務器用你生成的SSH公鑰來加密一條消息,而只有你的SSH密鑰可以解開這條消息.所以其他人如果沒有你的SSH密鑰,是無法解開加密消息的,從而也就無法登錄你的Linux服務器.

SSH無密碼登錄的設置就是這么簡單。

為這篇文章評分
[Total: 39 Average: 4.2]


免責聲明!

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



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