ssh用于遠程登錄服務器,運行命令和程序。你可以通過密碼認證和通過公鑰認證來登錄遠程系統。如果你經常使用ssh連接到遠程服務器,那么公鑰認證方法最適合你。這種方法是一種安全的、無需密碼的登錄方式。
在這篇文章中,我們將解釋如何在Linux操作系統服務器中設置沒有密碼的SSH。我們將使用命令行終端應用程序來實現這一目的。要打開命令行終端,請使用鍵盤快捷鍵。+alt+t>
我們已經在Ubuntu 20.04系統上解釋了本文中提到的步驟。在Debian和之前的Ubuntu版本中也可以遵循同樣的步驟。
在本地計算機上生成新的ssh密鑰對
第一步將是在本地系統上生成一個新的ssh密鑰。為此,請在終端中發出以下命令:
$ ssh-keygen -t rsa
按Enter鍵接受所有字段為默認值。
上面的命令將創建密鑰對,即公共密鑰和私有密鑰。私鑰保留在系統上,而公鑰則共享。這些密鑰存儲在.ssh文件夾中。
您可以輸入以下命令來查看生成的密鑰對:
$ ls –l .ssh
將公鑰復制到遠程服務器
在下一步中,將公用密鑰復制到要從本地系統訪問的遠程服務器系統上,而無需輸入密碼。我們將使用大多數Linux發行版中默認提供的ssh-copy-id命令。此命令會將公共密鑰id_rsa.pub復制到遠程系統中的.ssh / authorized_keys文件中。
ssh-copy-id的語法如下:
$ ssh-copy-id remote_user @ remote_IP
在我們的示例中,命令為:
$ ssh-copy-id tin @ 192.168.72.136
在遠程系統上,您可以通過查看authorized_keys文件來驗證公鑰的傳輸。
$ cat .ssh / authorized_keys
將遠程系統上的authorized_keys文件的權限設置為600。請使用以下命令:
$ chmod 600 .ssh / authorized_keys
將遠程系統上的.ssh目錄的權限設置為700。使用以下命令來這樣做:
$ chmod 700 .ssh
在我們的本地計算機中,我們會將私鑰添加到ssh身份驗證代理。這將使我們無需每次都輸入密碼即可登錄到遠程服務器。
這是執行此操作的命令:
$ ssh-add
完成上述步驟后,嘗試登錄到遠程服務器。這次,您無需輸入密碼即可登錄到遠程服務器。
這就是在Ubuntu 20.04系統中設置不帶密碼的ssh登錄所需要的全部內容。請記住,您可以與任何人共享公鑰,但絕不能共享您的私鑰。擁有私鑰的任何人都將能夠登錄到具有匹配公鑰的任何系統。