Convert SSH config to Ananta hosts CSV format
Project description
Anata No Minato(あなたのみなと)
This project is an attempt to packaging the Ananta with its runtime into a minimum, hardened docker image, while also providing a convenient way to use it.
It is recommended to bind mount the ${HOME}/.ssh/ into the container, and the container will automatically generate hosts.csv based on ~/.ssh/config for you.
Since it is routine for me to spend lot of my labour hours in an air-gapped environment, a docker image seems to be the best way to package some of my favourite tools.
How to start
Install the ananta helper script:
curl -sSLROJ --fail -- \
"https://github.com/IceCodeNew/anata-no-minato/releases/latest/download/ananta"
# it is always a good idea to check the content of a script before executing it
cat ./ananta
sudo install -pvD ./ananta /usr/local/bin/
rm ./ananta
This helper script will automatically generate hosts.csv based on ~/.ssh/config, issue the command as below:
(omit the hosts.csv argument)
ananta -CS fastfetch
In case you want to specify an existing hosts.csv,
issue the command with the same arguments sequence as the original ananta command:
ananta -t arch hosts.csv sudo pacman -Syu --noconfirm
Hacking SSH Config for Ananta
Specify Tags
You can assign tags to hosts by including a #tags line in your SSH config. Separate multiple tags using either commas (,) or colons (:), as shown below:
Host mynas
Hostname 1.1.1.1
User root
#tags tailscale,debian:nas,home
Excluding a Host from hosts.csv Generation
To exclude a host from the generated hosts.csv file, add the !ananta tag to its tags list. Any host marked with this tag will be skipped during the generation process.
Host do_not_ananta_in_this_host
#tags home,debian,!ananta
Disabling the tags option
To disable a #tags line, simply add an extra # at the beginning, effectively re-enabling the SSH host.
Host will_ananta_in_this_host
##tags home,debian,!ananta
Why named "Anata No Minato"
My local disk already has too many git repositories named docker-XXX. Since I want to save a few keystrokes when jumping into this project directory, I won't name it docker-ananta.
Ananta doesn't align with Chinese or Japanese pronunciation conventions. By omitting one 'n' it becomes the Japanese word Anata (あなた), which means "you" and gives me tab completion after typing just four letters.
Meanwhile, Minato (みなと) in Japanese means "harbor" - a natural association with Docker containers. When combined, these form the title of a classic Japanese enka song. Please take a listen to it ;-)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sshconfig_to_ananta-2.0.2.tar.gz.
File metadata
- Download URL: sshconfig_to_ananta-2.0.2.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.24.1 CPython/3.13.2 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
499b97d855eaa7c39af322b6cbeb6705b3437e3e1029161da414ce670bc8cd1d
|
|
| MD5 |
805f6390857c04b6302cc965c519632a
|
|
| BLAKE2b-256 |
35f7c5240eace30dcf05d84457643cfe785cd57879d457aeb554edf1e25007dd
|
File details
Details for the file sshconfig_to_ananta-2.0.2-py3-none-any.whl.
File metadata
- Download URL: sshconfig_to_ananta-2.0.2-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.24.1 CPython/3.13.2 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0655ebc30f2afa996477b9f9a19598b1710bc0fbc45d5611461c85d5f4f25f50
|
|
| MD5 |
4fd33390db26e27abb55df0dacbe8a20
|
|
| BLAKE2b-256 |
7e32e98badac09fc308e0449b0ac72dd71c9a736aeb6071d2b42cdc219f1ac4d
|