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,在該文件加入如下幾行配置:

host 11
HostName 192.168.1.11
User test1
host
10
HostName 192.168.1.10
User test1

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

ssh 11
【注】:有時我們還需要指定私鑰,例如
host
12
HostName 192.168.1.12
User test1
    IdentityFile ~/.ssh/id_rsa
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章