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

ssh(secure shell)普遍用於遠程登陸Linux服務器。當咱們使用ssh登陸到遠程系統時,它會提示輸入密碼,而後只容許咱們登陸到服務器。有時咱們須要配置應用程序或腳本(主要是shell腳本),以便在對遠程系統執行ssh以後自動化要執行的任務。可是,若是咱們沒有配置基於密鑰的ssh,腳本將在每次運行時提示輸入密碼,這時咱們須要手動輸入密碼。爲了解決這個問題,咱們能夠選擇使用公鑰/私鑰概念。其中遠程服務器容許其餘系統基於密鑰進行ssh。sql

步驟1:生成ssh密鑰對shell

首先,須要生成一個密鑰對(rsa或dsa),可使用「-t」命令行開關指定選項rsa或dsa密鑰。若是不傳遞-t參數,它將默認建立RSA密鑰。服務器

1dom

$ ssh-keygen -t rsassh

1ide

2工具

3spa

4命令行

5code

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目錄中建立兩個文件,以下所示。

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

二、〜/ .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命令提示輸入密碼,則意味着你的設置沒有正確配置,請重試全部步驟。

相關文章
相關標籤/搜索