SSH免密碼登陸設置

    SSH是遠程登陸Linux系統的工具,Linux系統默認安裝都包含SSH服務端,客戶端能夠經過命令:ssh 服務器IP地址(例:ssh 192.168.100.1)或者SSH客戶端軟件登陸到Linux服務器。可是,默認的SSH登陸方式要求用戶輸入服務器目標帳號的密碼。爲了不繁瑣的密碼輸入,能夠爲SSH配置免密碼登陸。具體配置以下:ubuntu

 

假設服務器IP地址:192.168.100.1;客戶端IP地址:192.168.100.2服務器

 

1. 服務器端執行命令:「james@ubuntu:~$ ssh-keygen -t rsa」,在這個過程當中會要求輸入密碼。爲了配置無密碼登陸,直接回車,過程以下:dom

 

james@ubuntu:~$ ssh-keygen -t rsassh

Generating public/private rsa key pair.ide

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

Enter passphrase (empty for no passphrase):spa

Enter same passphrase again: server

Your identification has been saved in/home/james/.ssh/id_rsa.同步

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

The key fingerprint is:

c8:7d:5b:4f:00:51:1f:b5:3c:51:cf:8c:4b:14:82:53james@ubuntu

The key's randomart p_w_picpath is:

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

|         o=E +++|

|         o. +.=+|

|          .. +++|

|    . o     o ..|

|     o S . . o  |

|        . o o   |

|         .   .  |

|                 |

|                 |

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

james@ubuntu:~$

 

2. 完成以上步驟以後,執行「cd ~/.ssh」切換到SSH目錄,發現生成了新文件:

 

james@ubuntu:~$ cd ~/.ssh

james@ubuntu:~/.ssh$ ll

total 16

drwx------ 2 james james 4096 Sep  4 21:51 ./

drwxr-xr-x 20 james james 4096 Aug 30 13:14../

-rw------- 1 james james 1675 Sep  4 21:51id_rsa

-rw-r--r-- 1 james james  394 Sep  4 21:51 id_rsa.pub

james@ubuntu:~/.ssh$

 

3. 執行「james@ubuntu:~/.ssh$ scp id_rsa.pubjames@192.168.100.2:~/.ssh/authorized_keys」將服務器「~/.ssh」目錄下的「id_rsa.pub」拷貝到客戶端「~/.ssh」目錄下的「authorized_keys」。

 

4. 執行「ssh james@192.168.100.2」登陸到客戶端(192.168.0.2)的james帳號,此時配置還沒有完成,仍然須要用戶輸入密碼。登陸以後,同步驟1生成客戶端的「id_rsa.pub」文件。

 

5. 執行「james@ubuntu:~/.ssh$ cat id_rsa.pub >> authorized_keys」,將「id_rsa.pub」文件添加到「authorized_keys」文末。完成這個步驟以後,服務器端公鑰和客戶端公鑰都保存在客戶端的「~/.ssh/ authorized_keys」文件中;而服務器的「~/.ssh/ authorized_keys」文件僅包含服務器本身的公鑰。

 

6. 客戶端執行「james@ubuntu:~/.ssh$ scp ~/.ssh/authorized_keysjames@192.168.100.1:~/.ssh/authorized_keys ,用客戶端「~/.ssh」目錄下的「authorized_keys」替換服務器端的「~/.ssh」目錄下的「authorized_keys」。

 

7. 至此,服務器(192.168.100.1)和客戶端(192.168.100.2)之間的無密碼登陸就完成了。

 

8. 服務器端使用命令:「ssh james@192.168.100.2」可無須輸入密碼,直接登陸到客戶端。

 

9. Ubuntu 14可能會報「Error:Agent admitted failure to sign」錯誤,而且仍然要求用戶輸入密碼才能登陸。解決方法是:分別在登陸服務器和客戶端的帳號,執行「james@ubuntu:~/.ssh$ ssh-add」命令,以下所示:

james@ubuntu:~/.ssh$ ssh-add

Identity added:/home/james/.ssh/id_rsa (/home/james/.ssh/id_rsa)

james@ubuntu:~/.ssh$

 

10. 若是以爲每次輸入IP地址比較麻煩,能夠執行「james@ubuntu:~/.ssh$ sudo vi /etc/hosts」配置「/etc/hosts」文件,內容以下:

127.0.0.1   localhost

127.0.1.1   ubuntu

 

192.168.100.1 server

192.168.100.2 client

 

客戶端的「/etc/hosts」文件應該和服務器的「/etc/hosts」內容一致。

 

11. 之後服務器登陸客戶端可使用「ssh james@client」代替「ssh 192.168.100.2」;客戶端使用「ssh james@server」代替「ssh 192.168.100.1」登陸服務器了。

相關文章
相關標籤/搜索