Mars's Blog

帳號安全設定

一、說明

開發過程中會用到很多第三方服務,使用這些服務時,大多要開註冊帳號,但為避免麻煩都會使用 google/facebook 等大型服務認証登入,軟體開源服務(如Github,Packagist)也可能互相串接,如果沒有做好安全防護,一個帳號被破,可能要死一大票,因此做好安全設定是必要的
安全設定如下:

  • 可靠的密碼
  • 限定連線IP
  • SSH金鑰認證 (Authorized_keys)
  • 兩步驟驗證

其中

  • 密碼:建議最少8碼英數混合,含大小寫、符號更佳。

    但過複雜容易搞死自己

  • 限定ip:第三方服務大多無法限定連線ip。
  • SSH金鑰認證:使用Linux、Git服務時推荐
  • 二步驗証:強烈推荐,兩步驟驗證為透過異質管道取得驗証碼,且驗証碼通常有時限,可靠度高。

二、目標

  • Google
    • 兩步驟驗證
  • GitLab
    • SSH金鑰認證
    • 兩步驟驗證
  • GitHub
    • SSH金鑰認證
    • 兩步驟驗證

三、設定

3.1 Google

3.1.1 兩步驟驗證-啟用

  • 前往Google,登入個人帳號後,點擊右上角LOGO,選「Google帳戶」

  • 選擇「安全性」 => 「兩步驟驗證」

  • 選擇「開始使用」

  • 輸入密碼

  • 使用手機驗証 (必需設定備援手機)

  • 輸入傳至手機的驗証碼

  • 選擇綁定的手機,及驗証方式

  • 輸入驗証碼

  • 綁定手機完成,啟用「兩步驟驗證」

  • 啟用「兩步驟驗證」完成

3.1.2 兩步驟驗證-Authenticator

  • 設定 Authenticator

  • 安裝app: Authenticator

  • 選擇手機系統

  • 打開Authenticator,掃描QR Code

  • 新增完成

  • 輸入驗証碼

  • 設定Authenticator完成

Google兩步驟驗證教學

3.2 GitLab

3.2.1 SSH金鑰認證

  • 產生SSH金錀

    1
    $ ssh-keygen -t ed25519 -C "your_email@example.com"
    • 注意: 如果您使用的是不支持ed25519算法的舊系統,請使用以下指令
      • $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • your_email@example.com請替換為您的電子信箱,也可以不指定電子信箱
    • 產生ssh key時,如果有設定密碼,以後使用此ssh key時都要輸入密碼
    • 非共用電腦上使用的ssh key,密碼通常不設,自行保管好即可
    • 會在家目錄中的.ssh目錄下產生二個檔案
      • 私錀:id_ed25519
      • 公錀:id_ed25519.pub
    • 家目錄位置
      • Windows:
        • C:\Users\你的帳號名\
        • C:\使用者\你的帳號名\
      • Linux:
        • /home/你的帳號名/
  • 複制~/.ssh/id_ed25519.pub內容

  • SSH-Keys設定位置

  • SSH金錀設定檔 ~/.ssh/config

    1
    2
    3
    4
    # 前往家目錄下的ssh設定資料夾
    $ cd ~/.ssh/
    # 編輯ssh config
    $ vi config

    可以為多個主機設置配置使用的金錀

    config內容如下:

    1
    2
    3
    4
    5
    # GitLab.com
    Host gitlab.com
    HostName gitlab.com
    User git
    #IdentityFile ~/.ssh/id_ed25519 # 金鑰如果使用預設路徑&檔名,可以不設定本行

    IdentityFile 指定ssh私鑰路徑,金鑰如果使用預設路徑&檔名,可以不設定本行

  • Git SSH連線金鑰
    • 使用指令ssh-keygen建立SSH認証金鑰對id_ed25519, id_ed25519.pub
    • id_ed25519是私鑰,存放於本機端
    • id_ed25519.pub是公鑰,存放於Git伺服器
    • 設定config指定連線參數與使用金鑰檔
    • 此時使用SSH連線到Git伺服器時,就不需再輸入帳號密碼,所以需要妥善保管好SSH私鑰

3.2.2 兩步驟驗證

  • 登入GitLab,設定兩步驟驗證

GitLab兩步驟驗證教學

3.3 GitHub

3.3.1 SSH金鑰認證

  • 產生SSH金錀

    1
    $ ssh-keygen -t ed25519 -C "your_email@example.com"
    • 注意: 如果您使用的是不支持ed25519算法的舊系統,請使用以下指令
      • $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • your_email@example.com請替換為您的電子信箱,也可以不指定電子信箱
    • 產生ssh key時,如果有設定密碼,以後使用此ssh key時都要輸入密碼
    • 非共用電腦上使用的ssh key,密碼通常不設,自行保管好即可
    • 會在家目錄中的.ssh目錄下產生二個檔案
      • 私錀:id_ed25519
      • 公錀:id_ed25519.pub
    • 家目錄位置
      • Windows:
        • C:\Users\你的帳號名\
        • C:\使用者\你的帳號名\
      • Linux:
        • /home/你的帳號名/
  • 複制~/.ssh/id_ed25519.pub內容

  • SSH-Keys設定位置

  • SSH金錀設定檔 ~/.ssh/config

    1
    2
    3
    4
    # 前往家目錄下的ssh設定資料夾
    $ cd ~/.ssh/
    # 編輯ssh config
    $ vi config

    可以為多個主機設置配置使用的金錀

    config內容如下:

    1
    2
    3
    4
    5
    # Github.com
    Host github.com
    HostName github.com
    User git
    #IdentityFile ~/.ssh/id_ed25519 # 金鑰如果使用預設路徑&檔名,可以不設定本行

    IdentityFile 指定ssh私鑰路徑,金鑰如果使用預設路徑&檔名,可以不設定本行

  • Git SSH連線金鑰
    • 使用指令ssh-keygen建立SSH認証金鑰對id_ed25519, id_ed25519.pub
    • id_ed25519是私鑰,存放於本機端
    • id_ed25519.pub是公鑰,存放於Git伺服器
    • 設定config指定連線參數與使用金鑰檔
    • 此時使用SSH連線到Git伺服器時,就不需再輸入帳號密碼,所以需要妥善保管好SSH私鑰

3.3.2 兩步驟驗證

  • 登入GitHub,設定兩步驟驗證

GitHub兩步驟驗證教學