FOSSA Status Build Status Codacy Badge codecov DeepSource
Sigil is the hub of the Great Wheel, a city at the center of the Outlands, the most balanced of neutral areas at the center of the planes. Also known as the "City of Doors" for the multitude of portals to other planes of existence and the Cage since those portals are the only way in or out, it is the setting for most of Planescape: Torment.
Sigil is an AWS SSM Session manager client. Allowing access to EC2 instances without exposing any ports.
- configuration files support (TOML, YAML, JSON, etc.)
- support for different configuration profiles
- lightweight container image
- SSH and SCP support
- AWS session-manager-plugin (version 1.1.17.0+ for SSH support)
- target EC2 instance must have AWS SSM Agent installed (full guide) (version 2.3.672.0+ for SSH support)
- AWS ec2-instance-connect to use SSH with your own and/or temporary keys
- to support AWS SSM target EC2 instance profile should have AmazonSSMManagedInstanceCore managed IAM policy attached or a specific policy with similar permissions (check About Policies for a Systems Manager Instance Profile and About Minimum S3 Bucket Permissions for SSM Agent)
The manual can be found here.
brew tap danmx/sigil brew install sigil
or
brew install danmx/sigil/sigil
docker pull danmx/sigil:0.7
Docker:
docker run --rm -it -v "${HOME}"/.sigil:/home/nonroot/.sigil -v "${HOME}"/.aws:/home/.aws danmx/sigil:0.7 list --output-format wide
Binary:
sigil -r eu-west-1 session --type instance-id i-xxxxxxxxxxxxxxxxx
Using with aws-vault:
aws-vault exec AWS_PROFILE -- sigil -r eu-west-1 session --type instance-id i-xxxxxxxxxxxxxxxxxAdd an entry to your ssh_config:
Host i-* mi-* IdentityFile /tmp/sigil/%h/temp_key IdentitiesOnly yes ProxyCommand sigil ssh --port %p --pub-key /tmp/sigil/%h/temp_key.pub --gen-key-pair --os-user %r --gen-key-dir /tmp/sigil/%h/ %h Host *.compute.internal IdentityFile /tmp/sigil/%h/temp_key IdentitiesOnly yes ProxyCommand sigil ssh --type private-dns --port %p --pub-key /tmp/sigil/%h/temp_key.pub --gen-key-pair --os-user %r --gen-key-dir /tmp/sigil/%h/ %h
and run:
ssh ec2-user@i-123456789
or
ssh ec2-user@ip-10-0-0-5.eu-west-1.compute.internal
By default configuration file is located in ${HOME}/.sigil/config.toml.
[default] type = "instance-id" output-format = "wide" region = "eu-west-1" profile = "dev" interactive = true
See CHANGELOG.md
To build binaries (development and release) run:
bazelisk build //...
To run specific build use:
bazelisk build --config cross:[darwin|linux|windows]_amd64 :[dev|release]
for working Docker image:
bazelisk build --config cross:linux_amd64 :[dev|release]-imageTo only build docker image run:
bazelisk run :dev-image
It'll create a docker image tagged bazel:dev-image.
All contributions are welcomed!
I'm trying to follow Conventional Commits.
pre-commit install pre-commit install --hook-type pre-push bazelisk sync
Sigil was inspired by xen0l's aws-gate.