Win10 環境的SSH管理

背景知識

  • ssh: OpenSSH SSH client (remote login program) OpenSSH SSH客戶端(遠程登錄程序)
  • ssh-keygen: authentication key generation, management and conversion 生成、管理、轉換用於認證的密鑰
  • ssh-agent: authentication agent認證代理(複雜情景纔可能用到,通常使用不到)

上面三個程序具體能夠在Unix類系統輸入man ssh, man ssh-keygen, man ssh-agent,查看詳細的說明和下述流程涉及的參數意思
${variable}按照變量字面意思,根據實際狀況,寫入具體的值
[optional]可選git

管理流程

  1. 生成github的公私鑰 ssh-keygen -t rsa -C ${github_email}->Enter file name ${github_key} -> Password: null or ${custom_github_password}
  2. 生成gitlab的公私鑰 ssh-keygen -t rsa -C "${gitlab_email}"->Enter file name ${gitlab_key} -> Password: null or ${custom_gitlab_password}
  3. 將步驟1和步驟2生成的${github_key}[.pub]${gitlab_key}[.pub]公私鑰放在C:\User\${Username}\.ssh目錄下面
  4. 將步驟1和步驟2生成的${github_key}.pub${gitlab_key}.pub文件內容用記事本打開,而後拷貝到相應的Github或Gitlab上面,操做路徑爲:settings -> SSH and GPG keys -> add new key
  5. .ssh目錄建立config文本文件,並將.txt擴展後綴去掉。每一個帳號單獨配置一個Host,每一個Host取一個對應的域名或者IP地址,每一個Host主要配置HostNameIdentityFile兩個屬性便可。github

    • Host:實際的域名或準確的IP地址,用於git@Host中的Host字段
    • HostName: 實際的域名或準確的IP地址,與Host對應
    • IdentityFile: ${github_key}${gitlab_key}文件全路徑
    • PreferredAuthentications: 配置登錄使用的權限認證,可爲publickey, password publickey
    • User: 用戶名,可選

示例配置文件

# github
Host github.com
HostName github.com
IdentityFile C:\Users\${Username}\.ssh\github_id_rsa
PreferredAuthentications publickey
User github

# custom gitlab
Host ${gitlab_ip}
HostName ${gitlab_ip}
IdentityFile C:\Users\${Username}\.ssh\gitlab_id_rsa
PreferredAuthentications publickey
User gitlab

測試方法:

ssh -Tv git@github.com
根據顯示的信息,跟蹤整個ssh的流程ssh

注意事項

  1. 配置文件使用空格分割字段和值
  2. Host是域名或準確的IP地址,必定要配置填寫正確
  3. ssh-keygen如有使用密碼,後續的ssh也須要密碼才能訪問對應的本地私鑰
相關文章
相關標籤/搜索