阿里雲CentOS7環境下之利用ssh密鑰實現本地免密登錄

  • SSH密鑰對概述

    阿里雲SSH密鑰對是一種安全便捷的登錄認證方式,由公鑰和私鑰組成,僅支持Linux實例。

  • SSH密鑰對介紹

    SSH密鑰對通過加密算法生成一對密鑰,默認採用RSA 2048位的加密方式。要使用SSH密鑰對登錄Linux實例,您必須先創建一個密鑰對,並在創建實例時指定密鑰對或者創建實例後綁定密鑰對,然後使用私鑰連接實例。

    成功創建SSH密鑰對後:

    • 阿里雲會保存SSH密鑰對的公鑰部分。在Linux實例中,公鑰內容放在~/.ssh/authorized_keys文件內。
    • 您需要下載並妥善保管私鑰。私鑰使用未加密的PEM(Privacy-Enhanced Mail)編碼的PKCS#8格式
  • 功能優勢

    相較於用戶名和密碼認證方式,SSH密鑰對有以下優勢:

    • 安全性:SSH密鑰對登錄認證更爲安全可靠。
      密鑰對安全強度遠高於常規用戶口令,可以杜絕暴力破解威脅。
      不可能通過公鑰推導出私鑰。
    • 便捷性:
      如果您將公鑰配置在Linux實例中,那麼,在本地或者另外一臺實例中,您可以使用私鑰通過SSH命令或相關工具登錄目標實例,而不需要輸入密碼。
      便於遠程登錄大量Linux實例,方便管理。如果您需要批量維護多臺Linux實例,推薦使用這種方式登錄。
  • 使用限制

    使用SSH密鑰對有如下限制:

    • 如果使用SSH密鑰對登錄Linux實例,將會禁用密碼登錄,以提高安全性。
    • 僅支持Linux實例。
    • 目前,ECS只支持創建2048位的RSA密鑰對。
    • 一個雲賬號在一個地域最多可以擁有500個密鑰對。
    • 一臺Linux實例只能綁定一個SSH密鑰對。如果您的實例已綁定密鑰對,綁定新的密鑰對會替換原來的密鑰對。
    • 已停售的實例規格無法使用SSH密鑰對。
    • 基於數據安全考慮,在實例狀態爲運行中(Running)時綁定或者解綁密鑰對,您需要重啓實例使操作生效。
  • 生成方式

    SSH密鑰對的生成方式包括:

  • 具體操作

    由上面生成方式可知,共有兩種方式可以實現密鑰方式登錄。第一種就是官方ECS生成那種方式進行操作,這種方式具體就不展開講了,具體可以看官方文檔進行操作,也很簡單。這裏着重講一下第二種生成密鑰的方式如何實現免密登錄。

    首先解釋一下第二種方式說的意思,其實就是在本地生成ssh密鑰對,將生成的公鑰複製到ECS服務器上,此時,本地和服務器上都有一樣的公鑰,然後後面就可以利用自己的私鑰來驗證從而登錄服務器了。具體本地如何生成ssh密鑰,這個也很簡單就不說了,如果不清楚,可以自行百度,網上很多。

    上面說的第二種方式裏,其實也有兩種情況:

    • 本地還沒有生成過密鑰
    • 本地已經存在了生成的密鑰(如果平時使用 github,一般都會有ssh密鑰配置,一般本地會有個.ssh文件夾,此目錄下會有兩個文件:id_rsa(私有祕鑰)和id_rsa.pub(公有密鑰))

    如果沒有生成過密鑰,則首先本地生成密鑰,之後操作,就與第二種情況操作一樣了。

    到這一步,上面不管哪種情況,我們本地已經生成了ssh密鑰,然後要做的就是登陸服務器,進行配置。

    這裏使用之前新添加的賬戶登陸服務器,登陸成功後,運行$ vim .ssh/authorized_keys命令打開文件。此時,需要將本地的id_rsa.pub(公有密鑰)裏的內容進行復制,然後粘貼到 .ssh/authorized_keys 這個文件裏,最後wq保存並退出。如果不行,則可以先對 .ssh/authorized_keys 進行一個授權,$ chmod 600 .ssh/authorized_keys,然後重啓ssh,本地登陸測試 ssh [email protected](自己的實例IP),如果能夠使用新的私鑰登錄ECS實例,表示已經成功。(第一次登陸可能會需要密碼,後面就不會了)

    注意: 如果本地已經有以前github使用的密鑰配置了,就不要再重新生成密鑰了,否則,生成的新的密鑰會替換掉原來的,會導致你後面無法使用ssh方式登陸github了。切記!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章