Git-Crypt - github์— ๋™๊ธฐํ™”ํ•  ๋•Œ ์ž๋™ ์•”ํ˜ธํ™”

Intro Github์— ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฆด ๋•Œ ์•”ํ˜ธํ™” ํ•  ์ˆ˜ ์žˆ๋Š” ํˆด ์˜ฌ๋ฆด ๋•Œ์—๋Š” ์•”ํ˜ธํ™”ํ•ด์„œ ์˜ฌ๋ฆฌ๊ณ  ๋‹ค์šด๋กœ๋“œ ์‹œ์—๋Š” ๋ณตํ˜ธํ™” ํ•ด์ค€๋‹ค. ๋ณด์•ˆํ‚ค๋‚˜ ํŒจ์Šค์›Œ๋“œ, ์ค‘์š” ์„ค์ • ์ •๋ณด ๋“ฑ์ด ๊ณต๊ฐœ์šฉ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋น„๊ณต๊ฐœ์šฉ ์ €์žฅ์†Œ์— ์˜ฌ๋ฆด ๋•Œ์—๋„ ์œ ์šฉํ•˜๋‹ค. ์•„์šธ๋Ÿฌ vimwiki๋‚˜ ์ง€๊ทนํžˆ ๊ฐœ์ธ์ ์ธ ๋ฌธ์„œ๋ฅผ ์ €์žฅํ•  ๋•Œ github๋ฅผ ์ด์šฉํ•  ๊ฒฝ์šฐ์—๋„ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค. Github ์ž์ฒด๊ฐ€ ํ•ดํ‚น๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ , github์˜ ์ž๋ฃŒ๋Š” ๋ชจ๋‘ ๊นƒํ—ˆ๋ธŒ์˜ ์žฌ์‚ฐ์ด๋ฏ€๋กœ ๋‚ด ์ž๋ฃŒ๋ฅผ ๋ณดํ˜ธํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์•„๋ฌด๋ฆฌ ๋น„๊ณต๊ฐœ์šฉ์ด๋ผ ํ• ์ง€๋ผ๋„ ๊บผ๋ฆผ์งํ•˜๊ธฐ๋Š” ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ์ด๋ ‡๊ฒŒ ํ•ด ๋‘๋ฉด ์ข‹์€ ์ ์€ PC๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ์ž‘์—… ์žฅ์†Œ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ๋ชจ๋‘ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐœ์ธ์ž๋ฃŒ๋ฅผ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ก  ๊ฐœ์ธ์ž๋ฃŒ๋ฅผ ์—๋ฒ„๋…ธํŠธ๋‚˜ ๊ตฌ๊ธ€๊ณ„์ •์— ์ €์žฅํ•ด๋„ ๋˜๊ฒ ์ง€๋งŒ ์ด๊ณณ๋„ ๊ทผ๋ณธ์ ์œผ๋กœ ๋ณด์•ˆ์ƒํƒœ๋Š” ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ๋˜ํ•œ ๊ฐœ๋ฐœ์ž, ์ž‘๊ฐ€ ๋“ฑ์€ ์†์‰ฝ๊ฒŒ github๋ฅผ ํ†ตํ•ด ์ €์žฅ์†Œ๋ฅผ ๋‘๊ณ  ์ž‘์—…์„ ํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•˜๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์ž‘๊ณ  ๊ฐ€๋ณ๊ณ  ์˜์กด์„ฑ๋„ ์—†๋Š” git-crypt๋ฅผ ํ™œ์šฉํ•˜๊ฒŒ ๋œ ๊ฒƒ์ด๋‹ค. ์•„๋ž˜ ์ƒ์ˆ ํ•˜๊ฒ ์œผ๋‚˜ ์ €์žฅ์†Œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์“ธ ๊ฒฝ์šฐ ๊ทธ ๋งŒํผ ๊ด€๋ฆฌํ•  ํ‚ค๊ฐ€ ๋Š˜์–ด๋‚˜๊ณ  ๋”ฐ๋กœ ๋ณด๊ด€ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. ์•”ํ˜ธํ™”๊ฐ€ ํ•„์š”ํ•œ ํŒŒ์ผ์€ ๊ฐ€๊ธ‰์  ํ•œ ์ €์žฅ์†Œ์— ๋ชจ์œผ๊ณ  ํ•˜๋‚˜์˜ ํ‚ค๋งŒ ๋”ฐ๋กœ USB๋‚˜ ๊ธฐํƒ€ ์žฅ์†Œ์— ๋ณด๊ด€ํ•ด ๋‘๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค. ๋งŒ์•ฝ git-crypt์— ์˜ํ•ด ์ƒ๊ธด ํ‚ค๋„ ๊นƒํ—ˆ๋ธŒ์— ์ €์žฅํ•œ๋‹ค๋ฉด ์ž๊ธฐ ๋ชจ์ˆœ์— ๋น ์ง€๋ฏ€๋กœ ๋ณ„๋„๋กœ ๋ฐฑ์—… ๋ณด๊ด€ํ•ด์•ผ ํ•œ๋‹ค. Install $ sudo apt install git-crypt # Ubuntu, Debian $ doas apk add git-crypt # Alpine Using git-crypt ์ฃผ์˜์‚ฌํ•ญ: git-crypt๋ฅผ ์ ์šฉํ•˜๊ธฐ ์ „์˜ ๋ฐ์ดํ„ฐ๋Š” ์•”ํ˜ธํ™” ํ•  ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ github์—์„œ ์ƒˆ๋กœ์šด ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  ์•„๋ž˜ ์ ˆ์ฐจ๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ์•„๋ž˜ your_secret_file ๊ณผ your_secret_directory๋Š” ์ €์žฅ์†Œ ๋‚ด์˜ ์•”ํ˜ธํ™”ํ•  ํŒŒ์ผ ๋˜๋Š” ํด๋”. $ git clone git@github.com:<github_user>/<your_progject_name> $ cd <your_project_name> $ git-crypt init $ cat <<EOF > .gitattributes your_secret_file_name filter=git-crypt diff=git-crypt *.key filter=git-crypt diff=git-crypt your_secret_dir/** filter=git-crypt diff=git-crypt EOF $ echo "hello world" > your_secret_file $ echo "hello world" > your_secret_dir/file1 $ git add . && git commit "update files" && git push ์ž์‹ ์˜ ๊นƒํ—ˆ๋ธŒ ์ €์ •์†Œ์— ๊ฐ€์„œ ์˜ฌ๋ฆฐ ํŒŒ์ผ์ด ์•”ํ˜ธ์™€ ๋˜์—ˆ๋Š”์ง€ ๋กœ๊ทธ์ธํ•ด์„œ ํ™•์ธํ•œ๋‹ค. ๋ณดํ†ต์˜ ๊ฒฝ์šฐ ์œ„ ์„ค์ •์ด ์ž˜ ๋˜์—ˆ์œผ๋ฉด ํ‰์ƒ์‹œ ๋Œ€๋กœ git์„ ์‚ฌ์šฉํ•˜๋ฉด ์ €์žฅ์†Œ ๊ด€๋ฆฌ๊ฐ€ ๋œ๋‹ค. ์ƒ์„ฑ๋œ ์•”ํ˜ธํ‚ค ๊ด€๋ฆฌ ์œ„์˜ git-crypt init ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋ฉด .git/git-crypt/keys๋กœ ์ดˆ๊ธฐํ™”๋˜๊ณ  ํ‚ค๊ฐ€ ์ƒ์„ฑ, ๋ณด๊ด€๋œ๋‹ค. Symmetric Mode: ์ƒ์„ฑ๋œ ํ‚ค๋Š” ๋กœ์ปฌ์—๋งŒ ์กด์žฌํ•˜๋ฏ€๋กœ ์ด ํ‚ค๋ฅผ USB ๋“ฑ์— ์ €์žฅํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ ๋‹ค๋ฅธ ๊ณณ์—์„œ ๊นƒํ—ˆ๋ธŒ ์ €์žฅ์†Œ๋ฅผ ๋‹ค์šด ๋ฐ›์€ ํ›„ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. GPG Mode: ๋˜ํ•œ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ํ‚ค๋ฅผ ์ถ”๊ฐ€์‹œ์ผœ ๊ทธ ์‚ฌ์šฉ์ž๊ฐ€ ์ €์žฅ์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. (์ž์‹  ํฌํ•จ) GPG Mode - ์ž์‹  ๋˜๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ $ git-crypt add-gpg-user <USER_ID> # ์ฃผ ์‚ฌ์šฉ์ž๋ชจ๋“œ: USER_ID is Public GPG key ID ... $ git clone git@github.com:<github_user>/<your_progject_name> # ํ—ˆ๋ฝ๋ฐ›์€ ์‚ฌ์šฉ์ž๋ชจ๋“œ $ cd <your_project_name> $ git-crypt unlock Symmetric Mode - ํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์‚ฌ์šฉ์ž(๋ณดํ†ต ์ž๊ธฐ์ž์‹ )์ด ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• $ git-crypt export-key <path_to_your_keyfile> # ์ฃผ ์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ฅผ ๋ฐฑ์—…ํ•˜๊ธฐ ... $ git clone git@github.com:<github_user>/<your_progject_name> # ๋‹ค๋ฅธ ๊ณณ์—์„œ ๋ณตํ˜ธํ™” ํ•˜๊ธฐ $ cd <your_project_name> $ git-crypt unlock <path_to_your_keyfile> # ๋ฐฑ์—…ํ•ด๋‘” ํ‚คํŒŒ์ผ์„ ์ด์šฉํ•ด ๋ณตํ˜ธํ™”ํ•˜๊ธฐ ์ฐธ๊ณ ์‚ฌํ•ญ .gitattributes ํŒŒ์ผ ์ž์‹ ์€ ์•”ํ˜ธํ™”๋˜์„œ๋Š” ์•ˆ๋œ๋‹ค๊ณ  ๋ฉ”๋‰ด์–ผ์— ๋‚˜์™€ ์žˆ๋‹ค. .gitattributes ํŒŒ์ผ์— dir/**์—์„œ **์ด ๋‘ ๊ฐœ์ธ ์ด์œ ๋Š” ์ดํ•˜ ์„œ๋ธŒ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ๋„ ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ƒ๋‹นํžˆ ๋งŽ์€ ํŒŒ์ผ์ด๋‚˜ ํด๋”์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š๋‹ค. ์†Œ์ŠคํŒŒ์ผ์ด๋‚˜ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์•”ํ˜ธํ™” ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜๊ณ  ์ด์ง„ํŒŒ์ผ์ด๋‚˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์—๋Š” ๊ทธ๋ฆฌ ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค. ํŒŒ์ผ์ด๋ฆ„์ด๋‚˜ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€์ •๋ณด๋Š” ์•”ํ˜ธํ™”ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์ฆ‰ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์•”ํ˜ธํ™” ํ•œ๋‹ค. REFERENCE Git-Crypt Home - https://www.agwa.name/projects/git-crypt/ git-crypt github - https://github.com/AGWA/git-crypt managing secrets with git crypt - https://dzone.com/articles/managing-secrets-with-git-crypt

2023-08-27 ยท 483 words

Github Page

github์—์„œ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž์šฉ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด github.com/user_name์˜ ๊ณ„์ •์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด https://user_name.github.io์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์œผ๋กœ ์ž์‹ ์˜ ํ™ˆํŽ˜์ด์ง€๋ฅผ ๊ฐœ์„คํ•  ์ˆ˜ ์žˆ๋‹ค. github์— user_name.github.io๋ผ๋Š” ์ €์žฅ์†Œ๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๊ณ  ๊ณต๊ฐœ(public)ํ•˜๋ฉด ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. README.md < index.md < index.html ์šฐ์„ ๊ถŒ ์ˆœ์„œ๋กœ ๋™์ž‘ํ•œ๋‹ค. ์ฒ˜์Œ ํ…Œ์ŠคํŠธ ํŒŒ์ผ์„ ๊นƒํ—ˆ๋ธŒ์— ์˜ฌ๋ฆฐ ํ›„ ๋ธŒ๋ผ์šฐ์ €์—์„œ 2-3๋ถ„ ํ›„ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

2022-08-24 ยท 48 words

Github ์‚ฌ์šฉํ•˜๊ธฐ

2023-08-26: TIP ์ถ”๊ฐ€: gitignore ๊นƒํ—ˆ๋ธŒ ๊ฐ€์ž…๊ณผ ์„ค์ • GitHub Home ์— ๊ฐ€์ž…ํ•œ๋‹ค. ์ƒˆ๋กœ์šด ์ €์žฅ์†Œ(Repository)๋ฅผ ๋งŒ๋“ ๋‹ค. ์ €์žฅ์†Œ์˜ ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•œ๋‹ค.(Code ์•„์ด์ฝ˜๋ฅผ ํด๋ฆญ) Github ์ œ์•ฝ์‚ฌํ•ญ ๋น„๊ณต๊ฐœ ์ €์žฅ์†Œ(Private Repository): ์œ ๋ฃŒ์—์„œ ๋ฌด๋ฃŒ๋กœ ๋ณ€๊ฒฝ (ํ˜‘์—… 3๋ช…๊นŒ์ง€) Github ๊ฐ€๊ฒฉํŽ˜์ด์ง€ (๊ฐœ์ธ์šฉํ”Œ๋žœ Free, ์œ ๋ฃŒํ”Œ๋žœ Pro) Pro์˜ ์žฅ์  ๋น„๊ณต๊ฐœ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ํŽ˜์ด์ง€์™€ ์œ„ํ‚ค ์ œ๊ณต ๋น„๊ณต๊ฐœ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ๊ณต๋™์ž‘์—…์ž ๋ฌด์ œํ•œ 2019.1์›” ๊ธฐ์ค€์œผ๋กœ ๋ชจ๋“  Repository ๋ฐ ํŒŒ์ผ ๋ฌด์ œํ•œ ๋‹จ, ๋‹ค์Œ์„ ๊ถŒ์žฅ ๋ชจ๋“  Repository์˜ ๊ฐฏ์ˆ˜๋Š” ๋ฌด์ œํ•œ ๊ฐ Repository๋ฅผ 1GB๊ฐ€ ๋„˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.(100GB Hard Limit) ๊ฐ ํŒŒ์ผ์€ 100MB๋ฅผ ๋„˜์ง€ ์•Š๋Š”๋‹ค. Github ๋“ฑ๋ก username, email address neosolaris/batutah@gmail.com git ์„ค์น˜ sudo apt install git Create Repository Repository Name: cmdTree Security Stat: Private initialize this repository with a README Add .gitignore: ๊นƒํ—ˆ๋ธŒ๋กœ ์˜ฌ๋ฆฌ์ง€ ์•Š์„ ํŒŒ์ผ ์„ ํƒ Add a license: ์ €์žฅ์†Œ ์ƒ์„ฑ๊ณผ ํ•จ๊ป˜ ๋ผ์ด์„ผ์Šค ํŒŒ์ผ์˜ ์„ค์น˜๊ฐ€ ์ž๋™ ์ˆ˜ํ–‰ My Address: https://github.com/neosolaris/cmdTree Readme๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋ง๊ณ  ...

2022-08-23 ยท (updated 2023-08-26) ยท 409 words

GitHub์— SSH Key๋กœ ์ธ์ฆํ•˜๊ธฐ

Laste Updated: 2022.08.17 ๊นƒํ—ˆ๋ธŒ์—์„œ ์ •์ฑ…์ด ๋ณ€๊ฒฝ๋˜์–ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์ธ์ฆ์„ ๋”์ด์ƒ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‹ค๋ฅธ ์ธ์ฆ ๋ฐฉ๋ฒ•์€ github์˜ ๋ณด์•ˆํ‚ค ๋ฐœ๊ธ‰๊ณผ ssh key๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” ssh key๋ฅผ ๋งŒ๋“ค์–ด github์— ๋“ฑ๋กํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. CREATE SSH KEY: enter, enter, enter rsa๋กœ ํ‚ค๋ฅผ ๋งŒ๋“ค ๊ฒฝ์šฐ ssh-keygen -t rsa -b 4096 -C $email ls ~/.ssh/id_rsa #private key ls ~/.ssh/id_rsa.pub #public key ed25519๋กœ ํ‚ค๋ฅผ ๋งŒ๋“ค ๊ฒฝ์šฐ (์ถ”์ฒœ: ๋ณด๋‹ค ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ•ํ™”๋œ ๋ฐฉ์‹) ssh-keygen -t ed25519 -C โ€œyourmail@mail.comโ€ ls ~/.ssh/id_ed25519 #private key ls ~/.ssh/id_ed25519.pub #public key ์ƒ์„ฑํ•œ pub ํ‚ค๋ฅผ GitHub์— ๋“ฑ๋กํ•˜๊ธฐ ์ƒ์„ฑํ•œ ํ‚ค ์ค‘ pubํ‚ค๋ฅผ ๋ณต์‚ฌํ•œ๋‹ค. ๊นƒํ—ˆ๋ธŒ์— ๋กœ๊ทธ์ธํ•˜์—ฌ ๋‹ค์Œ ๋ฉ”๋‰ด๋ฅผ ์ฐพ์•„ ํด๋ฆญ. |Github Home > Settings > SSH and GPG Keys > New SSH Key Title์— ์ œ๋ชฉ์„ ์ž…๋ ฅํ•˜๊ณ  โ€œAdd SSH Key"๋ฅผ ๋ˆŒ๋Ÿฌ ๋“ฑ๋ก ์™„๋ฃŒ. ํ„ฐ๋ฏธ๋„์—์„œ ์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ(SSH ์ธ์ฆ๋ฐฉ์‹)์œผ๋กœ ์—ฐ๊ฒฐ ๊นƒํ—ˆ๋ธŒ์— ์„ฑ๊ณต์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ์ง€ ํ™•์ธ ssh -T git@github.com ๊นƒํ—ˆ๋ธŒ์— ์—ฐ๊ฒฐ ๋ฐ ์ €์žฅ์†Œ ๋“ฑ๋ก git remote set-url origin git@github.com:user_name/repo_name.git Comment ์ด ๋ฐฉ์‹์€ https๋ฐฉ์‹๋ณด๋‹ค ๊ฐ„๊ฒฐํ•œ URL๊ณผ ํŽธ๋ฆฌํ•œ ์‚ฌ์šฉ๋ฒ•์ด ์ข‹๋‹ค. ๋˜ํ•œ ๊นƒํ—ˆ๋ธŒ๋กœ๋ถ€ํ„ฐ ์ธ์ฆํ‚ค๋ฅผ ๋ฐ›๋Š” ๋ฐฉ์‹์€ ๊ธฐ๊ฐ„์ œํ•œ์ด ์žˆ๋‹ค. ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ ์—ฐ๊ฒฐํ•  ๊ฒฝ์šฐ ssh ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด pubํ‚ค๋ฅผ ๊นƒํ—ˆ๋ธŒ์— ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. Reference https://medium.com/ntust-aivc/instruction-for-adding-an-ssh-key-to-your-github-account-ubuntu20-04-3-lts-f9f7802ed734

2022-08-23 ยท (updated 2022-08-24) ยท 167 words