mitten
is a drop-in replacement for SSH that brings internet connection
to the machines without it, and enables easy file transfer between the local
and remote machines.
Only you can use the connection and have the access to the local files.
Normally, on machines with no internet access, calls like these fail or hang:
$ ssh supercomp
supercomp> curl -I https://unkaktus.art
curl: (7) Failed to connect to unkaktus.art port 443: Network is unreachable
With mitten
, they work through your local connection:
$ mitten supercomp
โโโโโ
โโ โโ
โโโ โโ
โโโโโ โโโโโโโโโ
โ โ โโโ
โ โ โ
โ โ โโ
โโโโโ โโโ
โโโโโโโโโโโโโ
mitten mittens!
supercomp> curl -I https://unkaktus.art
HTTP/1.1 308 Permanent Redirect
Mitten magic!
To easily transfer files between the local machine and the remote,
use mittenfs
command after logging in, which provides sftp
interface:
$ mitten supercomp
supercomp> mittenfs
supercomp> sftp> get mitten.go .
supercomp> sftp> lls
mitten.go
Mitten magic!
Having MambaForge installed, install mitten
package:
mamba install -c https://mamba.unkaktus.art mitten
-
Install Go (https://go.dev,
brew install go
,conda install go
) -
Build
mitten
:
go install github.com/unkaktus/mitten@latest
- Add
$HOME/go/bin
to your$PATH
:
export PATH="$HOME/go/bin:$PATH"
You would probably want to have it permanently, so put it into your shellrc.