---
# System prepended metadata

title: About Github
tags: [隨手筆記]

---

---
tags: 隨手筆記
---
# About Github
contributed by < `tl32rodan` >

## SSH setting:
* Question:
    * 在 push/pull 時, 總是要輸入使用者帳號密碼
    * `git clone git://...` 的 repositories 沒辦法更新
    * 在 [github setting 中加入 ssh keys](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) 後, 輸入 `ssh -T git@github.com` 仍然沒反應

* Solving process:
    * 先嘗試過重新加入 ssh keys 到 github setting, 但仍然無用
    * 發現之前設定 ssh server 時[改過 port 22 為其他](http://linux.vbird.org/linux_server/0310telnetssh.php#ssh_port), 所以 把 port 22 新增回來並執行 `service ssh restart`
        * 結果：仍然無效
    * 最後參考了[這篇 github 官方文件](https://docs.github.com/en/github/authenticating-to-github/using-ssh-over-the-https-port), 才成功解決
        * 步驟說明：
            * *Step 1*: 測試 ssh over HTTPS port 可行
                * 執行 `$ ssh -T -p 443 git@ssh.github.com`
                * 若跳出以下 message 則代表可以～
                    > Hi username! You've successfully authenticated, but GitHub does 
                    > not provide shell access.
                    
                * 如果不行, 請參考[Trouble Shooting Guide](https://docs.github.com/en/articles/error-permission-denied-publickey)
            * *Step 2*: 啟用 SSH 連線 over HTTPS
                * 文件原話是這麼說的: 
                > If you are able to SSH into git@ssh.github.com over port 443, you can override your SSH settings to force any connection to GitHub to run though that server and port.
                * 總之上面 *step 1* 如果可以執行, 就可以繼續
                * 執行 `$ touch ~/.ssh/config` 並以你習慣的編輯器打開 `~/.ssh/config` , 再貼上:
                    ```
                    Host github.com
                      Hostname ssh.github.com
                      Port 443
                    ```
                * 再一次測試 `$ ssh -T git@github.com`
                * 結果應該如下:
                    > Hi username! You've successfully authenticated, but GitHub does 
                    > not provide shell access.
            :::success
            另外, 也可以參考使[用 https 來 clone 並暫存使用者名稱](https://docs.github.com/en/github/using-git/caching-your-github-credentials-in-git)的說明
            :::