This command encrypts and decrypts files using the public key registered on GitHub and your own private key.
Requires go 1.20 or higher
See below for how to install/upgrade.
go install github.com/yoshi389111/git-caesar@latest
See below for how to uninstall.
go clean -i github.com/yoshi389111/git-caesar
See below for how to install/upgrade.
brew install yoshi389111/apps/git-caesar
See below for how to uninstall.
brew uninstall yoshi389111/apps/git-caesar
Download the file that matches your operating environment from "Releases."
Usage:
git-caesar [options]
Application Options:
-h, --help print help and exit.
-v, --version print version and exit.
-u, --public=<target> github account, url or file.
-k, --private=<id_file> ssh private key file.
-i, --input=<input_file> the path of the file to read. default: stdin
-o, --output=<output_file> the path of the file to write. default: stdout
-d, --decrypt decryption mode.
-u
specifies the location of the peer's public key. Get fromhttps://github.com/USER_NAME.keys
if the one specified looks like a GitHub username. If it starts withhttp:
orhttps:
, it will be fetched from the web. Otherwise, it will be determined as a file path. If you specify a file that looks like GitHub username, specify it with a path (e.g.-u ./octacat
). Required for encryption. For decryption, perform signature verification if specified.-k
Specify your private key. If not specified, it searches~/.ssh/id_ecdsa
,~/.ssh/id_ed25519
,~/.ssh/id_rsa
in order and uses the first one found.-i
Input file. Plaintext file to be encrypted when encrypting. When decrypting, please specify the ciphertext file to be decrypted. If no options are specified, it reads from standard input.-o
output file. Outputs to standard output if no option is specified.- Specify
-d
for decrypt mode. Encrypted mode if not specified.
List of supported public key prefixes:
ssh-rsa
-- Key length is 1024 bits or moreecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
ssh-ed25519
Unsupported public key prefix list:
ssh-dss
-- DSAssh-rsa
-- Key length is less than 1024 bitssk-ecdsa-sha2-nistp256@openssh.com
sk-ssh-ed25519@openssh.com
Encrypt your file secret.txt
for GitHub user octacat
and save it as sceret.zip
.
git-caesar -u octacat -i secret.txt -o secret.zip
In the same situation, the private key uses ~/.ssh/id_secret
.
git-caesar -u octacat -i secret.txt -o secret.zip -k ~/.ssh/id_secret
Decrypt GitLab user tanuki
's file secret.zip
and save it as sceret.txt
.
git-caesar -d -u https://gitlab.com/tanuki.keys -i secret.zip -o secret.txt
Same situation, no signature verification.
git-caesar -d -i secret.zip -o secret.txt
- dev.to Passwordless encryption with public key for GitHub English
- Qiita GitHub 用の公開鍵でパスワードレスの暗号化/復号をしてみる Japanese
(C) 2023 SATO, Yoshiyuki
This software is released under the MIT License.