Linux配置SSH免密登陸(公私鑰登陸)

Liam8發表於2018-12-09

環境說明

客戶機:Mac OS X

伺服器:CentOS 6.5

客戶端:OpenSSH,OS X及大多數Linux都內建了OpenSSH.’ssh -v’命令可以檢視版本.

大致流程

  • 1.在客戶機建立一對金鑰檔案,包括公鑰檔案(~/.ssh/id_rsa.pub),私鑰檔案(~/.ssh/id_rsa).

  • 2.把公鑰放到伺服器上(~/.ssh/authorized_keys),在使用ssh登入時,ssh程式會傳送私鑰去和伺服器上的公鑰做匹配。如果匹配成功就可以自動登入了。

客戶機配置

  • 1.檢視~/.ssh資料夾,若已經存在有公鑰檔案(id_rsa.pub),私鑰檔案(id_rsa),則可以跳過客戶端配置.

  • 2.生成金鑰檔案.

$ ssh-keygen
複製程式碼

然後一路回車. 然後~/.ssh下會生成id_rsa.pub和id_rsa, 其中id_rsa檔案起到唯一標識你的客戶機的作用.

注意:不要改這兩個檔案的檔名,ssh登陸時會讀取id_rsa檔案.

伺服器配置

1.修改sshd配置檔案(/etc/ssh/sshd_config).

找到以下內容,並去掉註釋符”#“

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys
複製程式碼

2.配置authorized_keys檔案.

若’~/.ssh/authorized_keys’不存在,則建立.ssh資料夾和authorized_keys檔案.

將上文中客戶機id_rsa.pub的內容拷貝到authorized_keys中.

PS:可以在客戶機中執行命令來拷貝:

cat ~/.ssh/id_rsa.pub | ssh user@host “cat - >> ~/.ssh/authorized_keys”
複製程式碼

注意:

  • 1 .ssh目錄的許可權必須是700
  • 2 .ssh/authorized_keys檔案許可權必須是600

3.重啟sshd.

$ /etc/init.d/sshd restart

測試

客戶機執行:ssh -v user@host (-v 除錯模式)

會顯示一些登陸資訊. 若登陸失敗,或者仍然要輸入密碼,可以在伺服器檢視日誌檔案:/var/log/secure.

若登陸成功,則以後就可以用ssh user@host 直接登陸了,不用輸入密碼.


like

相關文章