Git 在 SSH 协议下使用代理

关于 Git 使用 Proxy , 网上很多教程讲的都是 如何设置 Http 下 Git 使用 Proxy , 但是并没有提到 SSH 下如何使用 Proxy . 即便有些文章讲到了, 也有不少是 Windows 平台下的, Linux 平台下的很少提及, 所以这里就记录一下, 如何在 Ubuntu 中, 使用 Git 在 SSH 协议下应用代理.

# 如何设置 git http proxy
$ git config --global http.proxy http://127.0.0.1:1080
$ git config --global https.proxy http://127.0.0.1:1080
$ cat ~/.gitconfig
[http]
	proxy = http://127.0.0.1:1080
[https]
	proxy = http://127.0.0.1:1080

Ncat

首先你需要 安装一个 Ncat 工具, 在 Ubuntu 下这样安装即可,

$ sudo apt install ncat -y

ncat 和 nc 类似, 都是用于在两台电脑之间建立连接并返回数据, nc 是 netcat 的 OpenBSD 实现, 而 ncat 是从 nmap 项目抽离出来的 netcat 实现.

如果想看更加详细的介绍, 可以点击下面的链接 或者 在 Google 查询

10 个例子教你学会 ncat (nc) 命令

What are the differences between ncat, nc and netcat?

Linux每天一个命令:nc/ncat

为 SSH 设置代理,

为 Git 以 ssh 的方式拉取项目设置代理的实质, 其实就是为 ssh config 中的 github.com 设置代理, 那么说到为ssh设置代理, 自然绕不开 ~/.ssh/config,

我们需要在 ~/.ssh/config 中加入如下内容:

Host github.com
User git
Hostname github.com
ProxyCommand  /usr/bin/ncat --proxy 127.0.0.1:1080 --proxy-type http %h %p
# 如果你的代理使用的协议是 socks4/5 , 修改 --proxy-type 后面的协议即可, 例如
# --proxy-type socks4
# --proxy-type socks5

接着尝试用 git 用户 SSH 连接 Github.com

$ ssh -T git@github.com
# 如果输出以下内容则代表成功.
Hi Kuri-su! You've successfully authenticated, but GitHub does not provide shell access.

Success !!

Part of the content reference from

https://blog.systemctl.top/2017/2017-09-28_set-proxy-for-git-and-ssh-with-socks5/

https://kuricat.com/gist/git-use-ssh-protocal-with-proxy-in-ubuntu-6cv0p/

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
若您初次使用SSH进行Git操作,可以按照以下步骤进行设置: 1. 首先,确认您已经生成了SSH密钥对。您可以通过运行命令`ls -al ~/.ssh`来检查是否已经存在SSH密钥。如果该目录下没有`id_rsa`和`id_rsa.pub`文件,则需要生成新的SSH密钥对。 2. 若要生成新的SSH密钥对,可以运行以下命令: ``` ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 这里将"your_email@example.com"替换为您在Git平台上注册的邮箱地址。按Enter键接受默认值,生成密钥对。 3. 然后,运行命令`ssh-agent`来启动SSH代理。 4. 添加您的SSH私钥到SSH代理中,使用以下命令: ``` ssh-add ~/.ssh/id_rsa ``` 5. 现在,打开您的Git平台(例如GitHub或Gitee)的设置页面,找到与SSH相关的选项。 6. 在Git平台上,将您的公钥(`id_rsa.pub`文件的内容)添加到您的账户的SSH密钥列表中。详细步骤请查阅Git平台的文档。 7. 一旦您的SSH密钥设置完成,您可以使用SSH协议来进行Git操作。例如,通过以下命令将远程仓库的URL修改为SSH协议: ``` git remote set-url origin git@github.com:user/repo.git ``` 将`user/repo.git`替换为您的远程仓库地址。 现在,您可以使用SSH协议进行Git操作,无需每次输入密码。请注意,这只是一个简单的示例,具体步骤可能因Git平台和操作系统而异。请根据您的实际情况进行相应调整和参考中提到的内容。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值