ohmyzsh/plugins/shell-proxy
Ruize Tang c1c9416e3a fix(shell-proxy): support ssh using http proxy in cygwin
the ssh-proxy.py generates `nc` commands to connect the proxy, however,
in cygwin, it does not set the protocol type, leading to nc using wrong
default protocol (socks5) if we actually use an http proxy.
2024-04-10 10:15:28 +08:00
..
.editorconfig fix(shell-proxy): make ssh-proxy compatible with macOS (#10640) 2022-04-12 13:26:22 +02:00
proxy.py feat(shell-proxy): allow excluding endpoints with NO_PROXY (#11924) 2023-10-02 20:58:42 +02:00
README.md feat(shell-proxy): allow excluding endpoints with NO_PROXY (#11924) 2023-10-02 20:58:42 +02:00
shell-proxy.plugin.zsh feat(shell-proxy): allow excluding endpoints with NO_PROXY (#11924) 2023-10-02 20:58:42 +02:00
ssh-agent.py fix(shell-proxy): change NAME env variable for WSL clash (#9447) 2020-11-20 12:42:51 +01:00
ssh-proxy.py fix(shell-proxy): support ssh using http proxy in cygwin 2024-04-10 10:15:28 +08:00

shell-proxy plugin

This a pure user-space program, shell-proxy setter, written in Python3 and Zsh.

To use it, add shell-proxy to the plugins array in your zshrc file:

plugins=(... shell-proxy)

Key features

  • Supports macOS and Linux (Ubuntu, Archlinux, etc.)
  • Supports git via setting $GIT_SSH
  • Supports ssh, sftp, scp, slogin and ssh-copy-id via setting aliases
  • Built-in autocomplete

Usage

Method 1

Set SHELLPROXY_URL environment variable to the URL of the proxy server:

SHELLPROXY_URL="http://127.0.0.1:8123"
SHELLPROXY_NO_PROXY="localhost,127.0.0.1"
proxy enable

Method 2

Write a program file in $HOME/.config/proxy so that the proxy URL is defined dynamically. Note that the program file must be executable.

Example:

#!/bin/bash

# HTTP Proxy
if [[ "$(uname)" = Darwin ]]; then
  echo "http://127.0.0.1:6152" # Surge Mac
else
  echo "http://127.0.0.1:8123" # polipo
fi

# No Proxy
echo "localhost,127.0.0.1"

Method 3

Use method 2 but define the location of the program file by setting the SHELLPROXY_CONFIG environment variable:

SHELLPROXY_CONFIG="$HOME/.dotfiles/proxy-config"

Reference

Maintainer