在使用linux的過程中,爲了省去每次連接輸入密碼的麻煩,通常會爲服務器配置免密登錄。配置免密登錄的方式有兩種:
- 使用公鑰(常用、安全)
- 使用私鑰(方便、有風險)
使用公鑰配置免密登錄
本機生成ssh公鑰 --> 將本機公鑰copy到服務器的 ~/.ssh/authorized_keys
文件中(沒有此文件則新建即可)
- 本機生成ssh公鑰
- 本機執行
ssh-keygen
指令,後面選項直接enter確認,然後在本機的~/.ssh
目錄下會生成id_rsa
和id_rsa.pub
兩個文件。id_rsa.pub
文件即爲本機的公鑰。 - 將
id_rsa.pub
文件的內容copy到服務器的~/.ssh/authorized_keys
文件中,若authorized_keys文件不存在則新建即可。 - 本機免密登錄服務器,爲了連接方便在本機
~/.ssh
目錄下新建config
文件,內容寫入:
Host aliyun
Hostname 服務器IP
port 22
User root
- 命令行執行
ssh aliyun
,即可連接至服務器。
使用私鑰配置免密登錄
使用公鑰的方式是將本機的認證信息(公鑰)交給服務器保存,然後連接時服務器會識別本機的身份。而私鑰配置免密登錄與公鑰恰恰相反,它是現在服務器端生成私鑰,然後交由本機保存。這時私鑰相當於是連接服務器的鑰匙,本機連接服務器的時候指定使用這把鑰匙,就可以連接服務器。
- 服務器生成ssh私鑰,在服務器執行
ssh-keygen
,會在~/.ssh目錄下生成id_rsa
(私鑰)和id_rsa.pub
- 將
id_rsa
文件的內容copy下來保存到本機,命名爲~/.ssh/ts.pem
(命名可隨意) - 爲了連接方便在本機
~/.ssh
目錄下新建config
文件:
Host aliyun
Hostname 服務器IP
port 22
User root
IdentityFile ~/.ssh/ts.pem
- 命令行執行ssh aliyun,連接成功
注:私鑰的方式將服務器的鑰匙暴露了出去,無論誰擁有這把私鑰都可以連接到服務器,因此具有一定的風險,如果不是必要,推薦使用公鑰連接的方式。