ssh 避免每次都輸入登陸密碼
阿新 • • 發佈:2019-02-09
內部系統有幾臺伺服器,經常登陸,但是每次使用SSH登陸過於麻煩,我們通過設定可以免去輸入使用者名稱和密碼。
通過如下幾步可以完成:
1.生成金鑰
ssh-keygen生成2個檔案,位於~/.ssh/下,分別是公共金鑰id_rsa.pub,和私有金鑰id_rsa。
2.傳送自己的公共金鑰給伺服器端
ssh-copy-id user@host以上命令是給遠端伺服器傳送自己的公共金鑰,伺服器端會要求輸入密碼。服務端拿到這個金鑰後會在.ssh/下儲存,檔名為authorized_keys;在mac平臺下沒有該命令,可以通過scp命令將公共金鑰檔案copy至服務端改名即可。
【注】解釋訪問過程:
在登陸服務端,無需輸入密碼,登陸過程如下:
- 客戶端先將自己的公共金鑰傳送給伺服器端儲存起來
- 客戶端發起登入請求,伺服器端接受到後,傳送一段隨機的字串給客戶端
- 客戶端接受該隨機字串後使用自己的私有金鑰進行加密,然後傳送給服務端
- 服務端接收後,使用儲存的客戶端公共金鑰進行解密,解密成功,客戶端即可登入,就無須輸入密碼
3.在本地配置config檔案,位於~/ssh/config,在該檔案加入如下幾行配置:
host11 HostName 192.168.1.11 User test1host 10 HostName 192.168.1.10 User test1那麼我們登陸時,輸入如下命令,無須使用者名稱和密碼,從此世界乾淨了許多
IdentityFile ~/.ssh/id_rsa