https://github.com/compulim/uncork
SSH-over-HTTPS proxy that works like Unix "corkscrew"
https://github.com/compulim/uncork
Last synced: about 1 month ago
JSON representation
SSH-over-HTTPS proxy that works like Unix "corkscrew"
- Host: GitHub
- URL: https://github.com/compulim/uncork
- Owner: compulim
- License: mit
- Created: 2017-03-10T10:40:09.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-03-10T18:08:26.000Z (about 8 years ago)
- Last Synced: 2024-10-11T23:19:11.042Z (7 months ago)
- Language: JavaScript
- Size: 11.7 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# uncork
[](https://npmjs.com/package/uncork) [](https://npmjs.com/package/uncork)
SSH-over-HTTPS proxy that works like Unix [`corkscrew`](http://agroman.net/corkscrew/).
# Install
Run `npm install uncork -g` to install `uncork` globally.
# Run
> Before running `uncork`, make sure your proxy is set in environment variable as either `HTTPS_PROXY` or `HTTP_PROXY`.
Run `uncork 22 ssh.github.com:443` to start `uncork` server on port 22 and forward to [ssh.github.com:443](ssh://ssh.github.com:443).
```
SSH-over-HTTPS proxy 1.0.0- Listening on port 22
- Will connect to HTTPS proxy at 127.0.0.1:8888
- Will tunnel traffic to destination at ssh.github.com:443
```If your proxy server requires authentication, you can run `uncork 22 ssh.github.com:443 johndoe P@ssw0rd` to start `uncork` server with BASIC authentication.
## Options via environment variables
You can also set options thru environment variables listed below.
| Environment variable | Description | Default |
| ----------------------- | --------------------------------------- | -------------------- |
| `uncork_destination` | Destination hostname and port | `ssh.github.com:443` |
| `uncork_port` | Port number to listen to | `22` |
| `uncork_proxy_username` | Username for proxy BASIC authentication | |
| `uncork_proxy_password` | Password for proxy BASIC authentication | |# How we use `uncork`
At our customer site, their Windows boxes are shared and locked behind firewall with HTTPS proxy. We want to use Git client to read/write to GitHub via SSH. We prefer SSH because we can use deploy keys to limit access to our repositories.
Our requirements:
* Use GitHub deploy keys, which is SSH only
* Work thru their HTTPS proxy
* Only allow traffic to external servers on port 443
* Requires authentication, supports both BASIC and NTLM
* XCOPY deployment
* Do not require administrative privileges
* Minimal footprintFortunately, GitHub has a SSH server setup on port 443 instead of 22, described in this [article](https://help.github.com/articles/using-ssh-over-the-https-port/).
Assume our repository is setup with SSH deploy keys generated by `puttygen`.
On Windows box:
* Install [PuTTY suite](http://www.chiark.greenend.org.uk/~sgtatham/putty/), specifically `plink.exe` and `pageant.exe`
* Set environment variable `GIT_SSH` and point to `plink.exe`
* Run `SETX GIT_SSH `, this will set a per-user permanent environment variable
* Load the deploy key
* Run `pageant.exe`
* Install and run `uncork`
* Run `npm install uncork -g`
* Run `uncork 22 ssh.github.com:443`
* Clone the repository
* Run `git clone git@localhost/org/reponame.git`> Although some steps mentioned above requires administrative privileges, we actually build a ZIP file to contain all the installed components mentioned.
# Contribution
Like us? [Star](https://github.com/compulim/uncork/stargazers) us.
Found a bug? [File](https://github.com/compulim/uncork/issues) us an issue.