1. 程式人生 > >ssh 避免每次都輸入登陸密碼

ssh 避免每次都輸入登陸密碼

內部系統有幾臺伺服器,經常登陸,但是每次使用SSH登陸過於麻煩,我們通過設定可以免去輸入使用者名稱和密碼。

通過如下幾步可以完成:

1.生成金鑰

ssh-keygen

生成2個檔案,位於~/.ssh/下,分別是公共金鑰id_rsa.pub,和私有金鑰id_rsa。

2.傳送自己的公共金鑰給伺服器端

ssh-copy-id user@host

以上命令是給遠端伺服器傳送自己的公共金鑰,伺服器端會要求輸入密碼。服務端拿到這個金鑰後會在.ssh/下儲存,檔名為authorized_keys;在mac平臺下沒有該命令,可以通過scp命令將公共金鑰檔案copy至服務端改名即可。

【注】解釋訪問過程:

在登陸服務端,無需輸入密碼,登陸過程如下:

  1. 客戶端先將自己的公共金鑰傳送給伺服器端儲存起來
  2. 客戶端發起登入請求,伺服器端接受到後,傳送一段隨機的字串給客戶端
  3. 客戶端接受該隨機字串後使用自己的私有金鑰進行加密,然後傳送給服務端
  4. 服務端接收後,使用儲存的客戶端公共金鑰進行解密,解密成功,客戶端即可登入,就無須輸入密碼

3.在本地配置config檔案,位於~/ssh/config,在該檔案加入如下幾行配置:

host11 HostName 192.168.1.11 User test1host 10 HostName 192.168.1.10 User test1

那麼我們登陸時,輸入如下命令,無須使用者名稱和密碼,從此世界乾淨了許多

ssh 11 【注】:有時我們還需要指定私鑰,例如 host 12 HostName 192.168.1.12 User test1
    IdentityFile ~/.ssh/id_rsa