如何在Linux上設置SSH密碼以進行無密碼登錄(轉)


ssh(secure shell)廣泛用於遠程登錄Linux服務器。當我們使用ssh登錄到遠程系統時,它會提示輸入密碼,然后只允許我們登錄到服務器。有時我們需要配置應用程序或腳本(主要是shell腳本),以便在對遠程系統執行ssh之后自動化要執行的任務。但是,如果我們沒有配置基於密鑰的ssh,腳本將在每次運行時提示輸入密碼,這時我們需要手動輸入密碼。為了解決這個問題,我們可以選擇使用公鑰/私鑰概念。其中遠程服務器允許其他系統基於密鑰進行ssh。

步驟1:生成ssh密鑰對

首先,需要生成一個密鑰對(rsa或dsa),可以使用“-t”命令行開關指定選項rsa或dsa密鑰。如果不傳遞-t參數,它將默認創建RSA密鑰。

1

$ ssh-keygen -t rsa

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

Generating public/private rsa key pair.

Enter file in which to save the key (/home/rahul/.ssh/id_rsa):

Created directory '/home/rahul/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/rahul/.ssh/id_rsa.

Your public key has been saved in /home/rahul/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:GZQ3tJffEUimdMZHIG3LcpvdkOaogwXBtWeaM2ejzYY rahul@tecadmin

The key's randomart image is:

+---[RSA 2048]----+

|       ..+oo+*+o |

|       .+ +o** ..|

|        .oooB oo |

|        .o B =+..|

|        S.= *+=.o|

|          .X.+...|

|         oE.+    |

|        . o.     |

|           .     |

+----[SHA256]-----+

上面的命令將在〜/ .ssh目錄中創建兩個文件,如下所示。

1、〜/ .ssh / id_rsa [私鑰]

2、〜/ .ssh / id_rsa.pub [公鑰]

步驟2:將公鑰復制到遠程系統

讓我們將系統的公鑰復制到遠程系統〜/ .ssh / authorized_key的密鑰文件中。我們可以手動或使用ssh-copy-id命令行工具執行此操作。

1

$ ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.10.20

輸出:

1

2

3

4

5

21

root@192.168.10.20's password:

Now try logging into the machine, with "ssh '192.168.10.20'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

它將提示輸入遠程系統的密碼。輸入遠程機器密碼並按Enter。

步驟3:驗證沒有密碼的SSH

現在我們已經完成了所有工作,只需嘗試對遠程系統進行ssh。你將在不輸入密碼的情況下登錄遠程系統。

1

$ ssh root@192.168.10.20

上面的命令不會提示輸入登錄密碼。在任何情況下,如果ssh命令提示輸入密碼,則意味着你的設置沒有正確配置,請重試所有步驟。


免責聲明!

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



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