๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์„ฑ

[Git & SSH] SSH ํ‚ค ์ƒ์„ฑ ๋ฐ ์›๊ฒฉ ์ €์žฅ์†Œ ์—ฐ๋™ํ•˜๊ธฐ

hyonie 2025. 2. 1. 16:52

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” SSH ํ‚ค๋ฅผ ํ™œ์šฉํ•˜์—ฌ GitHub ์›๊ฒฉ ์ €์žฅ์†Œ์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘์†ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ GitHub์— ์ฝ”๋“œ๋ฅผ pushํ•˜๊ฑฐ๋‚˜ pullํ•  ๋•Œ HTTPS ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, SSH ํ‚ค๋ฅผ ์„ค์ •ํ•˜๋ฉด ๋งค๋ฒˆ ID/PW ๋ฅผ ์ž…๋ ฅํ•  ํ•„์š” ์—†์ด ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ GitHub๊ณผ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

SSH ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋ถ€ํ„ฐ GitHub ์— ๋“ฑ๋กํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ณผ์ •๊นŒ์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿš€

๐Ÿ“‚ ๋ชฉ์ฐจ

     


    1. SSH ํ‚ค๊ฐ€ ๋ญ์ง€?

    SSH(Secure Shell) ํ‚ค๋Š” ์„œ๋ฒ„(๋˜๋Š” Git ์›๊ฒฉ ์ €์žฅ์†Œ)์™€ ํด๋ผ์ด์–ธํŠธ(์‚ฌ์šฉ์ž PC)๊ฐ€ ์•”ํ˜ธํ•™์ ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ์ธ์ฆ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

    • Public Key(๊ณต๊ฐœํ‚ค): ๋ˆ„๊ตฌ๋‚˜ ๊ฐ€์งˆ์ˆ˜ ์žˆ๋Š” ํ‚ค (์›๊ฒฉ ์„œ๋ฒ„๋‚˜ GitHub์— ๋“ฑ๋ก๋จ) - โญ๊ณต๊ฐœํ‚ค๋ฅผ ~/.ssh/id_rsa.pub -> ์ดํ›„ ์›๊ฒฉ์„œ๋ฒ„ authorized_keys์— ์ถ”๊ฐ€
    • Private Key(๊ฐœ์ธํ‚ค): ์†Œ์œ ์ž๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ํ‚ค (๋กœ์ปฌ ์ปดํ“จํ„ฐ์— ์ €์žฅ๋จ)
    • ์•”ํ˜ธํ™” ๋ณตํ˜ธํ™” ๋ฐฉ์‹
      • ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•œ ๋ฐ์ดํ„ฐ๋Š” ๊ฐœ์ธํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™” ๊ฐ€๋Šฅ
      • ๊ฐœ์ธํ‚ค๋กœ ์•”ํ˜ธํ˜ธํ•œ ๋ฐ์ดํ„ฐ๋Š” ๊ณต๊ฐœํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™” ๊ฐ€๋Šฅ
      • SSH ์ธ์ฆ์—์„œ๋Š” ์ฃผ๋กœ ๊ฐœ์ธํ‚ค๋กœ ์„œ๋ช…ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต๊ฐœํ‚ค๋ฅผ ์ด์šฉํ•ด ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ์‹์ด ์‚ฌ์šฉ๋จ

    ๊ณต๊ฐœํ‚ค์™€ ๊ฐœ์ธํ‚ค ์ด ๋‘˜์„ ์ง์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด, ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†์ด๋„ ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    GitHub  SSH ์ธ์ฆ ๊ณผ์ •์˜ ํ๋ฆ„

     

    [1] SSH ํ‚ค ์Œ ์ƒ์„ฑ

    ์‚ฌ์šฉ์ž๊ฐ€ ssh-keygen์„ ์‹คํ–‰ํ•˜๋ฉด ๊ฐœ์ธํ‚ค(Private Key)์™€ ๊ณต๊ฐœํ‚ค(Public Key) ํ•œ ์Œ์ด ์ƒ์„ฑ๋จ

     

    [2] ๊ณต๊ฐœํ‚ค๋ฅผ Github์— ๋“ฑ๋ก

    ์‚ฌ์šฉ์ž๋Š” ๊ณต๊ฐœํ‚ค(Public Key)๋ฅผ GitHub์— ๋“ฑ๋ก

     

    [3] SSH๋ฅผ ์ด์šฉํ•œ GitHub ์ธ์ฆ๊ณผ์ •

    ์‚ฌ์šฉ์ž๊ฐ€ git push ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด:

    1. ๋กœ์ปฌ PC๋Š” ๊ฐœ์ธํ‚ค(Private Key)๋กœ ์„œ๋ช…ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ  GitHub  ์„œ๋ฒ„๋กœ ๋ณด๋ƒ„
    2. GitHub ์„œ๋ฒ„๋Š” ๋“ฑ๋ก๋œ ๊ณต๊ฐœํ‚ค(Public Key)๋กœ ์„œ๋ช… ๊ฒ€์ฆ
    3. ๊ฒ€์ฆ์ด ์„ฑ๊ณตํ•˜๋ฉด push ์š”์ฒญ์„ ์Šน์ธ

    [4] ์ธ์ฆ ํ›„ git push ์„ฑ๊ณต! ๐Ÿš€

    ์„œ๋ช…์ด ๊ฒ€์ฆ๋˜๋ฉด GitHub๊ฐ€ ์š”์ฒญ์„ ๋ฐ›์•„๋“ค์—ฌ, push ์ž‘์—…์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

     

    2. SSH ํ‚ค ์ƒ์„ฑํ•˜๊ธฐ

    Windows ๊ธฐ์ค€์œผ๋กœ Git Bash์—์„œ ๊ธฐ์กด์— SSH ํ‚ค ์Œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    cd ~/.ssh
    ls

     

    id_rsa ๋ฐ id_rsa.pub ์™€ ๊ฐ™์€ ํŒŒ์ผ์ด ๋ณด์ธ๋‹ค๋ฉด ์ด๋ฏธ SSH ํ‚ค ์Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ 5๋‹จ๊ณ„๋กœ ๋ฐ”๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ๐Ÿ”‘ SSH ํ‚ค ์Œ์ด ์—†๋‹ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ƒˆํ‚ค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    ssh-keygen

     

     

    ์˜ต์…˜์œผ๋กœ

    • -t rsa: ์ƒ์„ฑํ•  ํ‚ค ํƒ€์ž…
    • -C "your_email@gmail.com": ํ‚ค ์‹๋ณ„์šฉ ์ฝ”๋ฉ˜ํŠธ(์˜ˆ: GitHub ๊ณ„์ • ์ด๋ฉ”์ผ)

    ์œ„ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๋ฉด ๊ฒฝ๋กœ์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ(ํŒจ์Šคํ”„๋ ˆ์ด์ฆˆ) ๋“ฑ์„ ๋ฌป๋Š”๋ฐ, ์—”ํ„ฐ๋งŒ ๋ˆ„๋ฅด๋ฉด ๊ธฐ๋ณธ๊ฒฝ๋กœ(~/.ssh/id_rsa)์™€ ๋นˆ ํŒจ์Šคํ”„๋ ˆ์ด์ฆˆ ์ง„ํ–‰ํ•ด๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.

     

    ์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜๋ฉด, ~/.ssh ํด๋”์— ๋‹ค์Œ ๋‘ ํŒŒ์ผ์ด ์ƒ๊น๋‹ˆ๋‹ค:

    • id_rsa: (๊ฐœ์ธํ‚ค, ์™ธ๋ถ€์— ์œ ์ถœ๋˜๋ฉด ์•ˆ๋จ)
    • id_rsa.pub: (๊ณต๊ฐœํ‚ค, ์ด ํŒŒ์ผ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•ด GitHub ๋“ฑ ์„œ๋ฒ„์— ๋“ฑ๋ก)

     

    3. SSH ์—์ด์ „ํŠธ(ssh-agent)์— SSH ํ‚ค ๋“ฑ๋กํ•˜๊ธฐ

    SSH ์—์ด์ „ํŠธ๋ž€?

    SSH ์—์ด์ „ํŠธ๋Š” SSH ๊ฐœ์ธํ‚ค(private Key)๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ, ๋งค๋ฒˆ ๋น„๋ฐ€๋ฒˆํ˜ธ(passphrase)๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ์ธ์ฆํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

     

    3.1 SSH ํ‚ค๋ฅผ ๋“ฑ๋กํ•˜๋Š” ์ด์œ 

    • SSH ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ์›๊ฒฉ ์„œ๋ฒ„(GitHub, GitLab, AWS ๋“ฑ)์— ์—ฐ๊ฒฐํ•  ๋•Œ, ๋งค๋ฒˆ ํ‚ค ํŒŒ์ผ์„ ์ž…๋ ฅํ•  ํ•„์š”์—†์ด ์ž๋™ ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • SSH ํ‚ค์— ํŒจ์Šคํ”„๋ ˆ์ด์ฆˆ๋ฅผ ์„ค์ •ํ•œ ๊ฒฝ์šฐ, SSH ์—์ด์ „ํŠธ๊ฐ€ ํ•œ ๋ฒˆ๋งŒ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•œ ๋’ค ์„ธ์…˜์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • SSH ํ‚ค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ํŠน์ • ์„œ๋ฒ„/์ €์žฅ์†Œ์— ๋งž๊ฒŒ ์ž๋™์œผ๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    3.2 SSH ํ‚ค๋ฅผ SSH ์—์ด์ „ํŠธ์— ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•

     

    1๏ธโƒฃ SSH ์—์ด์ „ํŠธ ์‹คํ–‰

     

    ๐Ÿ’  Windows (Git Bash, PowerShell)

    eval $(ssh-agent -s)

     

    ๐Ÿ’   macOS / Linux

    eval "$(ssh-agent -s)"

     

    → pid(ํ”„๋กœ์„ธ์Šค ID)๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด SSH ์—์ด์ „ํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


    2๏ธโƒฃ SSH ํ‚ค๋ฅผ ์—์ด์ „ํŠธ์— ๋“ฑ๋ก

    ์ด์ œ ๋กœ์ปฌ SSHํ‚ค๋ฅผ SSH ์—์ด์ „ํŠธ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    ssh-add ~/.ssh/id_rsa

     

    โœ”๏ธ ์ด์ œ SSH ํ‚ค๊ฐ€ SSH ์—์ด์ „ํŠธ์— ๋“ฑ๋ก๋˜์—ˆ์œผ๋ฉฐ, ์›๊ฒฉ ์„œ๋ฒ„(GitHub, GitLab ๋“ฑ)์™€ ์—ฐ๊ฒฐํ•  ๋•Œ ์ž๋™์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


     

    3๏ธโƒฃ SSH ์—์ด์ „ํŠธ์— ๋“ฑ๋ก๋œ ํ‚ค ํ™•์ธ

    ssh-add -l

     

    โœ”๏ธ ์—ฌ๊ธฐ์— ์›ํ•˜๋Š” ํ‚ค๊ฐ€ ๋‚˜์˜ค๋ฉด SSH ์—์ด์ „ํŠธ์— ์ •์ƒ์ ์œผ๋กœ ๋“ฑ๋ก๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

     



    4. ๊ณต๊ฐœํ‚ค(GitHub)์— ๋“ฑ๋กํ•˜๊ธฐ

    SSH ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๊ฐœ์ธํ‚ค(id_rsa)์™€ ๊ณต๊ฐœํ‚ค(id_rsa.pub)๊ฐ€ ์ง์„ ์ด๋ฃจ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด์ œ id_rsa.pub(๊ณต๊ฐœํ‚ค) ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ GitHub ๊ณ„์ •์— ๋“ฑ๋กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

     

    1. id_rsa.pub ๋‚ด์šฉ ๋ณต์‚ฌ

    • ํ•ด๋‹น ํŒŒ์ผ์„ ๋ฉ”๋ชจ์žฅ์ด๋‚˜ VS Code์—์„œ ํ…์ŠคํŠธ ์ „์ฒด๋ฅผ ๋ณต์‚ฌ ๋˜๋Š” cat id_rsa.pub ์ „์ฒด ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ) ssh-rsa AAAAB3NzaC1yc2EAAAA... your_email@gmail.com

    2. GitHub ์›น ์‚ฌ์ดํŠธ ์ ‘์† > ์šฐ์ธก ์ƒ๋‹จ ํ”„๋กœํ•„ ์•„์ด์ฝ˜ ํด๋ฆญ > Settings

     

    3. ์™ผ์ชฝ ๋ฉ”๋‰ด์—์„œ SSH and GPG keys ํด๋ฆญ > New SSH key ๋ฒ„ํŠผ

     

    4. ๊ณต๊ฐœํ‚ค ๋ถ™์—ฌ ๋„ฃ๊ธฐ

    • Title: "๊ฐœ์ธ PC" ๋“ฑ ์‹๋ณ„ํ•˜๊ธฐ ํŽธํ•œ ์ด๋ฆ„
    • key: ๋ฐฉ๊ธˆ ๋ณต์‚ฌํ•œ ๊ณต๊ฐœํ‚ค ๋ถ™์—ฌ๋„ฃ๊ธฐ
    • Add SSH key ๋ฒ„ํŠผ์œผ๋กœ ์ €์žฅ

     

    5. SSH  ๊ณต๊ฐœํ‚ค (id_rsa.pub)๋ฅผ GitHub์— ์—…๋กœ๋“œํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด์ œ GitHub์˜ SSH ์ฃผ์†Œ๋งŒ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ๋กœ๊ทธ์ธ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ์ฆ‰์‹œ ํ•ด๋‹น ์ €์žฅ์†Œ์— ์ ‘์†์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์œ„ ๊ณผ์ •์„ ๋งˆ์น˜๋ฉด GitHub์—์„œ SSH ์—ฐ๊ฒฐ์ด ํ™œ์„ฑํ™”๋˜์–ด, ์•ž์œผ๋กœ ์›๊ฒฉ ์ €์žฅ์†Œ์— git push/pull์„ ํ•  ๋•Œ ์•”ํ˜ธ ์ž…๋ ฅ ์—†์ด ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

     

     

    5. SSH ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ

    ๊ณต๊ฐœํ‚ค ๋“ฑ๋ก์ด ์ œ๋Œ€๋กœ ๋˜์—ˆ๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ด ๋ด…๋‹ˆ๋‹ค:

    ssh -T git@github.com

     

    ์ •์ƒ์ ์œผ๋กœ Hi <username>! You've successfully authenticated, but GitHub does not provide shell access. ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜ค๋ฉด ์„ค์ • ์™„๋ฃŒ

    ๋งŒ์•ฝ Permission denied (publickey). ๋“ฑ์˜ ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค๋ฉด,

    • ๊ณต๊ฐœํ‚ค๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋“ฑ๋ก๋˜์—ˆ๋Š”์ง€
    • SSH ์—์ด์ „ํŠธ(ssh-agent)๊ฐ€ ๋™์ž‘์ค‘์ธ์ง€
    • ๊ฐœ์ธํ‚ค์˜ ๊ฒฝ๋กœ๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

     

    5.1 ๊ณต๊ฐœํ‚ค๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋“ฑ๋ก๋˜์—ˆ๋Š”์ง€ ํ™•์ธ

    SSH ํ‚ค๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ GitHub(๋˜๋Š” ์›๊ฒฉ ์„œ๋ฒ„)์— ๋“ฑ๋ก๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด, ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

     

    โœ… (1) SSH ํ‚ค ๋ชฉ๋ก ํ™•์ธ

    ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ  SSH ํ‚ค๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด:

    ls -al ~/.ssh

     

    ์ถœ๋ ฅ ๋‚ด์šฉ

    โœ”๏ธ id_rsa.pub ํŒŒ์ผ์ด ์กด์žฌ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

    โŒ ์—†๋‹ค๋ฉด SSH ํ‚ค๋ฅผ ๋‹ค์‹œ ์ƒ์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. (ssh-keygen  ์‚ฌ์šฉ)

     

    โœ… (2) ๊ณต๊ฐœํ‚ค์˜ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๊ณ  GitHub์— ๋“ฑ๋กํ–ˆ๋Š”์ง€ ์ฒดํฌ

    ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ๊ณต๊ฐœํ‚ค ํŒŒ์ผ์„ ํ™•์ธํ•˜๊ณ  ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค:

    cat ~/.ssh/id_rsa.pub

     

    ๐Ÿš€ ์ด ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•˜์—ฌ GitHub์— ๋“ฑ๋กํ–ˆ๋Š”์ง€ ํ™•์ธ:

    1. GitHub์— ๋กœ๊ทธ์ธ
    2. ์šฐ์ธก ์ƒ๋‹จ ํ”„๋กœํ•„ > Settings > SSH and GPG keys
    3. ๋“ฑ๋ก๋œ SSHํ‚ค๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ(์—†๋‹ค๋ฉด ์ƒˆ๋กœ ์ถ”๊ฐ€)
    4. ํ‚ค๋ฅผ ์ž˜๋ชป ๋“ฑ๋กํ•œ ๊ฒฝ์šฐ, ์‚ญ์ œ ํ›„ ์ƒˆ ํ‚ค ๋“ฑ๋ก

    ๐Ÿ“Œ GitHub์—์„œ "Keep my email address private" ์˜ต์…˜์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉด noreply.github.com์ฃผ์†Œ๋กœ ์„ค์ •๋œ SSHํ‚ค๊ฐ€ ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    5.2 SSH ์—์ด์ „ํŠธ(ssh-agent)๊ฐ€ ๋™์ž‘์ค‘์ธ์ง€ ํ™•์ธ

    SSH  ์—์ด์ „ํŠธ๊ฐ€ ์‹คํ–‰์ค‘์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด ์ž…๋ ฅ:

    eval $(ssh-agent -s)

     

    โœ”๏ธ pid ๊ฐ’์ด ํ‘œ์‹œ๋˜๋ฉด SSH ์—์ด์ „ํŠธ๊ฐ€ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

    โŒ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋‹ค์‹œ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

     

    5.3 ๊ฐœ์ธํ‚ค์˜ ๊ฒฝ๋กœ๊ฐ€ ๋งž๋Š” ํ™•์ธ

     

    ๋งŒ์•ฝ SSH ์—์ด์ „ํŠธ์— ๋“ฑ๋กํ–ˆ๋Š”๋ฐ๋„ Permission denied (publickey) ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด, Git์ด SSH ํ‚ค๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ์—์„œ ์ฐพ๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

    โœ… (1) SSH ์„ค์ • ํ™•์ธ

    cat ~/.ssh/config

    โœ”๏ธ IdentityFile์— ์„ค์ •๋œ SSH ํ‚ค๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    โŒ ๊ฒฝ๋กœ๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด, ์˜ฌ๋ฐ”๋ฅธ SSH ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

     

    ์ˆ˜์ •ํ•˜๋ ค๋ฉด:

    nano ~/.ssh/config

    ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์•„๋ž˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ ๋˜๋Š” ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค:

    Host github.com
    	HostName github.com
    	IdentityFile ~/.ssh/id_rsa_hyonie
    	User hyonie

    ํŒŒ์ผ์„ ์ €์žฅํ•œ ํ›„ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค:

    ssh-add ~/.ssh/id_rsa

     

    ๋ชจ๋“  ์„ค์ •์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋˜์–ด ์žˆ๋Š”์ง€ ๋‹ค์‹œ SSH ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. 

     

    5. Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์„ค์ •

    ์ด์ œ ๋กœ์ปฌ ํ”„๋กœ์ ํŠธ๋ฅผ GitHub์— ์—ฐ๋™ํ•ด๋ด…๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋กœ ์ƒˆ git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“  ๋’ค SSH ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

     

     

    1. ๋กœ์ปฌ ํ”„๋กœ์ ํŠธ ํด๋”๋กœ ์ด๋™

    cd ~/Desktop/my-blog

     

    2. Git ์ดˆ๊ธฐํ™”(์ด๋ฏธ git init ๋˜์–ด ์žˆ๋‹ค๋ฉด ์ƒ๋žต)

    git init
    git add .
    git commit -m "Initial commit"

     

    3. ์›๊ฒฉ ์ถ”๊ฐ€

    git remote add origin git@github.com:your-username/my-blog.git
    git remote -v  // ์—ฐ๊ฒฐ ํ™•์ธ

     

    4. ์ฒซ ํ‘ธ์‹œ

    git push -u origin main

    ์ด์ œ ๋งค๋ฒˆ ID/PW ์ž…๋ ฅ ์—†์ด SSH ํ‚ค ์ธ์ฆ์œผ๋กœ ํ‘ธ์‹œ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

     

    6. ๋งˆ๋ฌด๋ฆฌ

    ์ •๋ฆฌํ•˜์ž๋ฉด,

    1. SSH ํ‚ค ์ƒ์„ฑ(ssh-keygen)
    2. SSH ์—์ด์ „ํŠธ์— ์‚ฌ์šฉ
    3. ๊ณต๊ฐœํ‚ค๋ฅผ GitHub์— ๋“ฑ๋ก
    4. SSH ์—ฐ๊ฒฐ ํ™•์ธ (ssh -T git@github.com)
    5. ์›๊ฒฉ ์ œํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ๋ฅผ SSH ํ˜•ํƒœ๋กœ ์ถ”๊ฐ€ (git remote add origin git@..)

    ์ด ๊ณผ์ •์„ ํ†ตํ•ด ๋งค๋ฒˆ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•  ํ•„์š” ์—†์ด ํŽธ๋ฆฌํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

    ๐Ÿ’  ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ์—์„œ ์ž‘์—…ํ•œ๋‹ค๋ฉด, ๊ฐ๊ฐ SSH ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด GitHub์— ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.
    ๐Ÿ’  ํšŒ์‚ฌ ๋‚ด๋ถ€์—์„œ ๋ณ„๋„ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ SSH ํ‚ค๋ฅผ ๋“ฑ๋ก ํ›„ ์ ‘๊ทผํ•˜๋ฉด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.