问题情况
从 SJTU 开着梯子访问 github 比较流畅,不排除是因为 SJTU 网络自带 github。回杭州以后开着梯子上 Ubuntu,能 Chrome 上 github 但命令行 ssh -T [email protected] 都不行。
其实写完此文以后第二天莫名其妙又可以直接 ssh -T [email protected] 了。
安装 proxychains
首先需要一个梯子。比如 clash-for-windows + 一个机场,clash-for-windows 的 port 为 7890
ref: https://zhuanlan.zhihu.com/p/166375631
1sudo apt install proxychains
配置 proxychains
1sudo vim /etc/proxychains.conf
dynamic_chain
的注释;注释掉strict_chain
- 在末尾
[ProxyList]
中添加socks5 127.0.0.1 7890
其中端口号取决于你 vpn 的 port
(通常不需要)设置 git 的代理
1git config --global https.proxy 'socks://127.0.0.1:7890'2git config --global http.proxy 'http://127.0.0.1:7890'
(通常不需要)检查 Shell 配置文件中是否正确配置了 proxy 环境变量
例如在 fish shell 中是:
1set -gx https_proxy http://127.0.0.1:78902set -gx http_proxy http://127.0.0.1:78903set -gx all_proxy socks5://127.0.0.1:7890
使用 proxychains
1proxychains ssh -T [email protected]
Output 例如:
1ProxyChains-3.1 (http://proxychains.sf.net)2|DNS-request| github.com3|D-chain|-<>-127.0.0.1:7890-<><>-4.2.2.2:53-<><>-OK4|DNS-response| github.com is 20.205.243.1665|DNS-request| github.com6|D-chain|-<>-127.0.0.1:7890-<><>-4.2.2.2:53-<><>-OK7|DNS-response| github.com is 20.205.243.1668|D-chain|-<>-127.0.0.1:7890-<><>-20.205.243.166:22-<><>-OK9Hi julyfun! You've successfully authenticated, but GitHub does not provide shell access.
若 proxychains git push 要你输入 http://github.com 的若
应该强制 git 走 ssh
ref: https://ricostacruz.com/posts/github-always-ssh
1git config --global url."[email protected]:".insteadOf "https://github.com/"
verified on 2024-5-6, ubuntu 20.04