Vscode: Git : ๊ฐœ์ธ ํ‚ค ์•”ํ˜ธ๋กœ git ์ง€์›

์— ๋งŒ๋“  2016๋…„ 10์›” 13์ผ  ยท  229์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: microsoft/vscode

  • VSCode ๋ฒ„์ „ : 1.6.0
  • e52fb0bc87e6f5c8f144e172639891d8d8c9aa55 ์ปค๋ฐ‹
  • ๋‚ ์งœ 2016-10-10T18 : 37 : 40.189Z
  • ์‰˜ 1.3.7
  • ๋ Œ๋”๋Ÿฌ 52.0.2743.82
  • ๋…ธ๋“œ 6.5.0
  • OS ๋ฒ„์ „ : Windows 7 Pro

์žฌํ˜„ ๋‹จ๊ณ„ :

  1. ์•”ํ˜ธ ๋ณดํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฐœ-๊ฐœ์ธ ํ‚ค ์Œ ๋งŒ๋“ค๊ธฐ
  2. github ๊ณ„์ •์— ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
  3. ๊ฐœ์ธ ํ‚ค ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋„๋ก git ์„ค์ •
  4. git๋กœ ๋ญ”๊ฐ€๋ฅผ ๋ฐ€์–ด

๊ฒฐ๊ณผ:

git pull
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
feature-request git help wanted

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Windows 10์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• :

  1. Git์ด Git๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๊ฒƒ ๋Œ€์‹  Windows์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” OpenSSH๋ฅผ ์‚ฌ์šฉํ•˜๋„๋กํ•ฉ๋‹ˆ๋‹ค.
    git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
  2. ssh-agent ์„œ๋น„์Šค (git์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜์ง€ ์•Š์Œ)๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    ์ž‘์—… ๊ด€๋ฆฌ์ž, ์„œ๋น„์Šค ํƒญ์„ ์—ด๊ณ  ์„œ๋น„์Šค ์—ด๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    OpenSSH ์ธ์ฆ ์—์ด์ „ํŠธ๋ฅผ ์ฐพ์•„ ์†์„ฑ์„ ์—ด๊ณ  ์‹œ์ž‘ ์œ ํ˜•์„ ์ž๋™์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ํ™•์ธ์„ ๋ˆ„๋ฅด์‹ญ์‹œ์˜ค.
    ๋˜ํ•œ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.
  3. ์—์ด์ „ํŠธ์— ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋ณดํ˜ธ ๋œ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
    ssh-add
    ssh-keygen์ด ์ƒ์„ฑํ•˜๋Š” C : Users \ % USERNAME % \. ssh์— ์ €์žฅ๋œ ํ‚ค๋ฅผ ์ž๋™์œผ๋กœ ์„ ํƒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
    ํ”„๋กฌํ”„ํŠธ์— ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค.

์ฐธ๊ณ  : Windows ์šฉ Git์„ ์„ค์น˜ํ•  ๋•Œ PATH์— bash ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜๋Š” ์˜ต์…˜์„ ์„ ํƒํ•œ ๊ฒฝ์šฐ ssh-add ๋ช…๋ น์ด ์ž˜๋ชป๋œ ์‹คํ–‰ ํŒŒ์ผ์„ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ํฌํ•จ ๋œ ํ‚ค๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ ์—์ด์ „ํŠธ์— ํ‚ค๋ฅผ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
C:\Windows\System32\OpenSSH\ssh-add.exe

์ด์ œ ๊ธฐ๋ณธ ์ œ๊ณต OpenSSH ์ธ์ฆ ์—์ด์ „ํŠธ๊ฐ€ ์‹œ์ž‘์‹œ ์•”ํ˜ธ๋กœ ๋ณดํ˜ธ ๋œ ํ‚ค๊ฐ€ ์ž ๊ธˆ ํ•ด์ œ ๋œ ์ƒํƒœ๋กœ ์‹คํ–‰๋˜๊ณ  Git์€ ์ž์ฒด ์†Œ์œ  ๋Œ€์‹  Windows OpenSSH๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋งค๋ฒˆ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅ ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ssh ์—์ด์ „ํŠธ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‹œ์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ๋ช…๋ น ์ค„์—์„œ VS Code๋ฅผ ์‹œ์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  229 ๋Œ“๊ธ€

๋ช…๋ น ์ค„์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ? ๊ฐœ์ธ ํ‚ค ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋„๋ก git์„ ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๊นŒ?

๋ช…๋ น ์ค„์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋‚˜๋Š” ๊ฑฐ๋ถ์ด ์ž์‹์„ ํ†ตํ•ด ์ž์‹์„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

image

๋ช…๋ น ์ค„์„ ์–ด๋–ป๊ฒŒ ์‹œ์ž‘ํ•ฉ๋‹ˆ๊นŒ? ์–ด๋–ค ๋ช…๋ น ์ค„?

Windows์—์„œ git bash (MINGW64)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ถŒ๋ฆฌ. ๋”ฐ๋ผ์„œ Tortoise์™€ ๊ฐ™์€ git.sshkey ์„ค์ •๋„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows 10, Git 2.10.1.

ํ”„๋กœ๋•์…˜ ์„œ๋ฒ„์—์„œ vscode์—์„œ git์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€์žˆ์–ด์„œ ํ…Œ์ŠคํŠธ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
์ฒ˜์Œ์—๋Š” ์•”ํ˜ธ๋กœ ๋ณดํ˜ธ ๋œ ์‚ฌ์šฉ์ž (ํ‚ค ์—†์Œ)์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ž๊ฒฉ ์ฆ๋ช… ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
vscode ๋‚ด๋ถ€์˜ ํ„ฐ๋ฏธ๋„ ๋˜๋Š” ์ž„์˜์˜ cmd๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ€๊ณ  ๋‹น๊ธธ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค-์•”ํ˜ธ๋ฅผ ๋ฌป์Šต๋‹ˆ๋‹ค. vscode๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปค๋ฐ‹ ๋งŒ ์ค€๋น„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ’€, ํ‘ธ์‹œ, ๋™๊ธฐํ™”๋Š” ์•”ํ˜ธ๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋‘ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜์—์„œ๋Š” ssh์— ๋Œ€ํ•ด ๋‹ค๋ฅธ 5 ์ž๋ฆฌ ํฌํŠธ๊ฐ€์žˆ๋Š” ์•”ํ˜ธ๋กœ ๋ณดํ˜ธ ๋œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ํ•œ ์ปดํ“จํ„ฐ์— ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ssh ํ‚ค (git ํฌํ•จ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@joaomoreno ์™œ ๊ทธ๊ฒƒ์„ ๋ฐฑ ๋กœ๊ทธ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๊นŒ?

์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ณ„ํšํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ํ’€ ์š”์ฒญ์„ ์‹œ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘

๊ทธ๊ฒƒ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค‘ ๐Ÿ˜‰

์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ๊ณ  ๊ฝค ์งœ์ฆ๋‚ฉ๋‹ˆ๋‹ค ๐Ÿ˜ž

@joaomoreno ๋‚˜๋Š” ์ด๊ฒƒ์„ ์ฐŒ๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ํ‚ค ๊ธฐ๋ฐ˜ ๋ณด์•ˆ์œผ๋กœ ์ด๋™ํ•จ์— ๋”ฐ๋ผ ์ด์ œ ๊ฐœ์ธ์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์€ ์—ฌ๊ธฐ์—์„œ ๋‚ด ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ถ”์  ํ•  ์ˆ˜

@hashhar ๋ฉ‹์ง€๋„ค์š”! ๐Ÿป ๋ฒฝ์— ๋ถ€๋”ชํžˆ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

@joaomoreno ๋‚˜๋Š” ๋ณ€ํ™”๊ฐ€ ํ•„์š”ํ•œ ๊ณณ์„ ์ฐพ๊ณ  ์žˆ์—ˆ๊ณ  ๋‹ค์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์‹œ๋‚˜๋ฆฌ์˜ค :

  • ํ‚ค๊ฐ€ ์ถ”๊ฐ€ ๋œ ssh ์—์ด์ „ํŠธ๊ฐ€ ์‹คํ–‰์ค‘์ธ ๊ฒฝ์šฐ clone ์ œ์™ธํ•œ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (node.url.parse ()๊ฐ€ ssh URL์— ๋Œ€ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ).
  • ssh-agent๊ฐ€ ๋„คํŠธ์›Œํฌ ํ™œ๋™ (๊ฐ€์ ธ ์˜ค๊ธฐ, ๋ณต์ œ, ํ‘ธ์‹œ, ํ’€)๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  git ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋Š” git.exe์— ์˜ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ œ์•ˆ ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ :

  • [x] ํ•„์š”ํ•˜์ง€ ์•Š์Œ, ๋‹ค์Œ ์ฃผ์„ ์ฐธ์กฐ url.parse () (where?)์— ์˜ค๋ฒ„๋กœ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ssh URL๋„ ์ธ์‹๋˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
  • [x] ๊ตฌ์„ฑ ํ‚ค, git.sshkey (๊ฐœ์ธ ํ‚ค์˜ ์œ„์น˜ (ํ˜„์žฌ openssh ํ‚ค๋กœ ์ œํ•œ๋จ-git์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋ฏ€๋กœ ๋‚˜์ค‘์— ํผํ‹ฐ ํ‚ค๋ฅผ ์กฐ์‚ฌ ํ•  ๊ฒƒ์ž„)).
  • [] SSH ์—์ด์ „ํŠธ (์‹คํ–‰ ์ค‘์ด ์•„๋‹Œ ๊ฒฝ์šฐ)๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด git ํ™•์žฅ์ด ์ดˆ๊ธฐํ™”๋˜๋Š” ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๋“  (๋น ๋ฅธ ์„ ํƒ?) ์‚ฌ์šฉ์ž์—๊ฒŒ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋„๋ก ์š”์ฒญํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ( vscode๋ฅผ ๋‹ซ์„ ๋•Œ ์—์ด์ „ํŠธ๋ฅผ ์ฃฝ์ž…๋‹ˆ๊นŒ? )

git ์—”๋“œ ํฌ์ธํŠธ์™€์˜ ํ†ต์‹ ์€ vscode๊ฐ€ ์•„๋‹Œ git.exe์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ณ€๊ฒฝ์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (ํ˜„์žฌ ๋ณธ ๊ฒƒ์—์„œ).

์ข‹์•„, URL ๊ตฌ๋ฌธ ๋ถ„์„์— ๋Œ€ํ•œ ๋‚ด ์ž˜๋ชป์ž…๋‹ˆ๋‹ค. ๋…ธ๋“œ๊ฐ€ git+ssh://[email protected]:hashhar/vscode ๋˜๋Š” ssh://[email protected]:hashhar/vscode ์™€ ๊ฐ™์€ URL์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ssh ๋ถ€๋ถ„์€ ๋ช…์‹œ ์ ์œผ๋กœ ์–ธ๊ธ‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? vscode๋Š” [email protected]:username/repo ํ˜•์‹๊ณผ ์ผ์น˜ํ•˜๋Š” URL ์•ž์— ๋งˆ์ˆ ์ฒ˜๋Ÿผ ssh ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์กฐ์šฉํžˆ ์‹คํŒจํ•ฉ๋‹ˆ๊นŒ? (์—ฌ์ „ํžˆ ssh-agent๊ฐ€ ์‹คํ–‰๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค).

ํ•‘ @joaomoreno. ์‹œ๊ฐ„์„ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฉด ์œ„์˜ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์˜๊ฒฌ์„ ๋งํ•˜์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ํ˜„์žฌ ๊ฐœ์ธ ํ‚ค์— ๋Œ€ํ•ด ssh-agent๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ๊ฐœ๋… ์ฆ๋ช…์„ ํ•จ๊ป˜ ํ•ดํ‚นํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜์ง€๋งŒ ์•ฝ๊ฐ„์˜ ๊ด‘ํƒ์ด ์—ฌ์ „ํžˆ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

@hashhar ์ง€์—ฐ

ssh-agent๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Git์ด ์ฐพ์„ ์œ„์น˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋„๋ก SSH_AGENT_PID ๋ฐ SSH_AUTH_SOCK ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ VSCode๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์–ด๋”˜๊ฐ€์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ VS Code๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค ssh-agent๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’์„ ([System.IO.Path]::GetTempPath()) ".ssh\$key.env" ์— ์ €์žฅํ•˜๋Š” Posh-Git (Powershell Git ๋ชจ๋“ˆ)๊ณผ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ํ•ด๋‹น ํŒ€๊ณผ ์ด์•ผ๊ธฐํ•˜์—ฌ ํ•ด๋‹น ์œ„์น˜๊ฐ€ ์ž์‹ ์˜ ์œ„์น˜์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ฐ‡ํ˜€์„œ ๊ธฐ๋ป์š”.

@andrewducker ์ถ”๊ฐ€ ์ž…๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ•™๊ธฐ ์ค‘๋ฐ˜ ๋•Œ๋ฌธ์— ์ œ๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ์†๋„๋กœ์ด ์ž‘์—…์„ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ ๋ง๊นŒ์ง€ ๋‹ค์‹œ ๋ง์”€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. Posh-Git ํŒ€์— ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

@joaomoreno ์ด ์ž‘์—…์œผ๋กœ ๋Œ์•„ ์™”์Šต๋‹ˆ๋‹ค. ๋‚ด ์ด์ „ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋„ˆ๋ฌด ์ˆœ์ง„ํ–ˆ๊ณ  ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ git ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ ํ•  ์ ์ ˆํ•œ ์œ„์น˜๋ฅผ ์ฐพ์œผ๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ : VSCode๊ฐ€ ์‹œ์ž‘๋˜๊ณ  git ๊ณต๊ธ‰์ž๊ฐ€๋กœ๋“œ ์ค‘์ผ ๋•Œ). ์ด๊ฑฐ ์–ด๋””์„œํ•˜๋‚˜์š”? ์ฝ”๋“œ์˜ ํ๋ฆ„์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•  ์ˆ˜์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Git ํ˜ธ์ถœ์ด ์ด๋ฃจ์–ด์งˆ ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์ฒ˜์Œ ํ˜ธ์ถœ ํ•  ๋•Œ ์•”ํ˜ธ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์„ ์‚ดํŽด๋ณด๋ฉด Git.ts์— ํ›„ํฌ๋ฅผ ๋‘๋Š” ๊ฒƒ์ด ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. (๊ฐ€์ ธ ์˜ค๊ธฐ, ๋‹น๊ธฐ๊ธฐ, ๋ฐ€๊ธฐ ๋“ฑ).

(๋‚ด๊ฐ€ ์ง์ ‘ ํ•  ๊ฒƒ์„ ์ œ์•ˆํ–ˆ์ง€๋งŒ TypeScript๋กœ ์•„๋ฌด๊ฒƒ๋„ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ VSCode ํ™•์žฅ์œผ๋กœ ์ž‘์—… ํ•œ ์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— GitHub์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์‚ดํŽด๋ดค์„๋ฟ์ž…๋‹ˆ๋‹ค.)

๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” Windows์—์„œ SSH_AUTH_SOCK ๋ฐ SSH_AUTH_PID ๋ณ€์ˆ˜๋ฅผ ssh-agent๊ฐ€ ์‹œ์ž‘๋œ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค ๋˜๋Š” ๋‹จ์ผ ์ฝ˜์†” ์„ธ์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ์กด ํ•ญ๋ชฉ์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  (์ ์–ด๋„ Windows์—์„œ) VSCode ๋‚ด์—์„œ ssh-agent๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ์ ์œผ๋กœ ์ด๊ฒƒ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ฒซ ๋ฒˆ์งธ Git ์ž‘์—…์ด ์™„๋ฃŒ๋˜๊ธฐ ์ „์— ์•”ํ˜ธ๋ฅผ ํ•œ ๋ฒˆ ์ œ๊ณตํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ VSCode ์ธ์Šคํ„ด์Šค๊ฐ€ ์ž์ฒด ์—์ด์ „ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋ณผ ์ˆ˜ ์žˆ๋„๋ก SSH_AUTH_SOCK์ด ์ƒ์„ฑ ๋  ํ•˜๋“œ ์ฝ”๋”ฉ ๋œ ์œ„์น˜๋ฅผ ์ •์˜ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด VSCode ์ธ์Šคํ„ด์Šค๋Š” ์„œ๋กœ ssh-agent๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ €์—๊ฒŒ ์ƒ๋‹นํžˆ ํฅ๋ฏธ๋กœ์šด ๋„์ „์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ƒ

vscode๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” SSH_AUTH_SOCK์„ ์กด์ค‘ํ•œ๋‹ค๋ฉด ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ssh-agent๊ฐ€ ์ด๋ฏธ ๋‚ด ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”๋ฐ๋„ ๊ฐœ์ธ ํ‚ค ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ํ†ตํ•ฉ ๋œ vscode ํ„ฐ๋ฏธ๋„ (์‰˜) ๋‚ด์—์„œ git์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ์‰ฌ์šด ๋””๋ฒ„๊น…์„ ์œ„ํ•ด git ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ํ„ฐ๋ฏธ๋„์ด ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ๋‚˜๋Š” ์ปค๋ฐ‹ f9d0c687ff2ea7aabd85fb9a43129117c0ecf519
EDIT2 : ์ฐฝ ๊ด€๋ฆฌ์ž์˜ ์‹คํ–‰๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  bash์—์„œ vscode๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ-์ด๋ฏธ ํ™˜๊ฒฝ์— ์„ค์ •๋œ ์„ธ์…˜์—์„œ VSCode๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค (์ œ ๊ฒฝ์šฐ์—๋Š” Powershell์—์„œ ์‹œ์ž‘). ๋”ฐ๋ผ์„œ ์ด๋ฏธ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด ํ•  ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ ์ฃ„์†ก ํ•ด์š”. ๋‚˜๋Š” ๋Œ€ํ•™ ๋•Œ๋ฌธ์— ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์„ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ btw๋ฅผ ์ƒ๊ธฐ์‹œ์ผœ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹ค์Œ ์ฃผ์— ๋ช‡ ๊ฐ€์ง€ ์ผ์„ ๋๋‚ด๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,

์Šฌํ”„๊ฒŒ๋„ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค ... ๐Ÿ˜ญ
๋‹ค์Œ์€ ๋‚ด ๊ตฌ์„ฑ๊ณผ์ด๋ฅผ ์žฌํ˜„ํ•˜๋Š” ์ž์„ธํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์ž…๋‹ˆ๋‹ค.
์กฐ๊ธˆ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค!

OS : macOSX Sierra ๋ฒ„์ „ 10.24.4
VScode : ๋ฒ„์ „ 1.11.1

๋‚ด .ssh ํด๋”์— ๋‹ค์Œ ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ตฌ์„ฑ
  • id_rsa_github
  • id_rsa_github.pub
  • id_rsa_gitlab
  • id_rsa_gitlab.pub
  • know_hosts

๊ตฌ์„ฑ ํŒŒ์ผ ๋‚ด์šฉ :

Host gitlab.com
  HostName gitlab.com
  User git
  RSAAuthentication yes
  IdentityFile ~/.ssh/id_rsa_gitlab

Host github.com
  HostName github.com
  User git
  RSAAuthentication yes
  IdentityFile ~/.ssh/id_rsa_github

์ปค๋งจ๋“œ ๋ผ์ธ๊ณผ ํƒ€์›Œ์—์„œ ์•„๋ฌด ๋ฌธ์ œ์—†์ด ์ปค๋ฐ‹ํ•˜๊ณ  ํ‘ธ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ VScode์—์„œ๋Š” ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ... ์‹œ๋„ ํ•  ๋•Œ๋งˆ๋‹ค์ด ์ถœ๋ ฅ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

git pull
๊ถŒํ•œ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค (๊ณต๊ฐœ ํ‚ค).
์น˜๋ช…์  : ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์˜ฌ๋ฐ”๋ฅธ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค
์ €์žฅ์†Œ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์˜ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

๋‚˜์—๊ฒŒ ์ด๊ฒƒ์€ ์ •๋ง๋กœ ์ฐจ๋‹จ์ œ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” VSC๋ฅผ ์ข‹์•„ํ•˜์ง€๋งŒ git์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉด ๋งค์ผ ํŽธ์ง‘์ž๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@MartinZubek @jmbelloteau SSH ์—์ด์ „ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ ๋ช…๋ น ์ค„์—์„œ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๊นŒ?

ํ—‰ํ—‰

ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ Git์— ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

ssh -T [email protected]

... ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ„ฐ๋ฏธ๋„์—์„œ VScode๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

code

VScode์—์„œ ํ‘ธ์‹œ ํ•  ๋•Œ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ •๋ง ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค!

@MartinZubek๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. VScode๋Š” Atom๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋†€๋ž์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ํ†ตํ•ฉ ํ„ฐ๋ฏธ๋„ UX์˜ ์†๋„์™€ git์„ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ณด์•ˆ์„ ์œ„ํ•ด ์›๊ฒฉ GIT์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์•”ํ˜ธ๊ฐ€ SSH๋ฅผ ๋ณดํ˜ธํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ฐ๊ฐ์ด ... ๋งž์ฃ ?

@andrewducker ์‹ค์ œ๋กœ ์ €์—๊ฒŒ ์ด๋Ÿฐ ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. :)
๋ช…๋ น ์ค„์—์„œ ์‹œ์ž‘ํ•  ํ•„์š”์—†์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž‘๋™ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @MartinZubek ,

๋‹น์‹ ์—๊ฒŒ ์–ด๋–ค ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋” ์ž์„ธํ•˜๊ฒŒ ์–˜๊ธฐํ•ด ์ฃผ ์‹œ๊ฒ ์–ด์š”? ๐Ÿ˜„

@jmbelloteau ๋ฌผ๋ก , ๋” ์ด์ƒ "Permission denied (publickey)"์˜ค๋ฅ˜๋กœ ๋๋‚˜์ง€ ์•Š์œผ๋ฉฐ git pull / push๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ~ / .ssh / config ํŒŒ์ผ์˜ ์˜ฌ๋ฐ”๋ฅธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ํ‚ค ์•”ํ˜ธ๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค์ด ์ฐฝ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
http://imgur.com/wpExMMP

@MartinZubek ๊ทธ๋ž˜์„œ
SSH ์—์ด์ „ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ ๋ช…๋ น ์ค„์—์„œ ์‹œ์ž‘ ํ–ˆ์Šต๋‹ˆ๊นŒ?
๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ?
๋‚ด ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@jmbelloteau ์˜ˆ, ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น ์ค„์—์„œ vscode๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค (์ •ํ™•ํžˆ ๋งํ•˜์ž๋ฉด Windows ์šฉ git๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” git-bash.exe์ž…๋‹ˆ๋‹ค). ๊ทธ๋ž˜๋„ ssh-agent ๋“ฑ์„ ์ˆ˜๋™์œผ๋กœ ์‹œ์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด git-bash ๋˜๋Š” ๋ฌด์–ธ๊ฐ€๋กœ ์ž๋™์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ

๋‹น์‹ ์ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๐Ÿ˜ญ

@vscodeteam ์ด ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌ ํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@jmbelloteau ๋„ˆ๋ฌด ์–ด๋ ค์›Œ์š”. ๊ทธ๊ฒƒ์€ ๋˜ํ•œ ๊ฝค ์น˜๊ณ  ๋†“์นœ๋‹ค. ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•œ ๊ฒƒ์€ ๋…ธ๋“œ ํ”„๋กœ์„ธ์Šค์—์„œ ssh-agent๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ VSCode์—์„œ env ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ๊ฒƒ์ด์—ˆ์ง€๋งŒ ์ด๋Š” ์—ฌ๋Ÿฌ VSCode ์ธ์Šคํ„ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ ssh-agent๋ฅผ ํ•„์š”๋กœํ•˜๋ฉฐ ๋งค๋ฒˆ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์‹  SSH_AUTH_SOCK ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Linux์—์„œ ์ž‘๋™ํ•˜์ง€๋งŒ ์•„์ง Windows์—์„œ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

OpenSSH ๋Œ€ Windows Powershell SSH ๋Œ€ PuTTY์˜ ์ถ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ ๊ทธ๊ฒƒ์„ ํ…Œ์ŠคํŠธ ํ•  ์˜ํ–ฅ์ด ์žˆ๋‹ค๋ฉด, ๋‚˜๋Š” ์ฝ”๋“œ๋ฅผ ๋‚ด ํฌํฌ๋กœ ๋ฐ€์–ด ๋„ฃ๊ณ  ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๊ฒƒ์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜์žˆ๋‹ค. ํ•˜์ง€๋งŒ Harcoded ๊ฒฝ๋กœ (๊ฐœ๋… ์ฆ๋ช…)๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ† ์š”์ผ์ด๋‚˜ ์ผ์š”์ผ๊นŒ์ง€ ์˜ฌ๋ฆด ๊ฒƒ ๊ฐ™์•„์š”.

์•ˆ๋…•ํ•˜์„ธ์š” @hashhar !

๋‹ต๋ณ€ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ ๊ทธ๊ฒƒ์€ ์ •๋ง ๋ณต์žกํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ๐Ÿ˜ž

๋‚˜๋Š” ์ •๋ง๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ง๋กœ ๋‹น์‹ ์„ ๋„์šธ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๋งˆ๋ฒ•์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ๋‹น์‹ ์—๊ฒŒ ํ–‰์šด์„ ๋ณด๋‚ผ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ๋‚˜๋Š” ๊ณ„์† ๋จธ๋ฌผ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

๊ท€ํ•˜์˜ ์˜๊ฒฌ๊ณผ ๊ด€๋ จํ•˜์—ฌ @hashhar , ์ œ์•ˆ ํ•  ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ssh-agent ์—์„œ ssh-agent path/to/code ์˜ํ•ด ์‹คํ–‰๋˜๋Š” ์ „์ฒด VSCode (์กฐ์ƒ ๋…ธ๋“œ ํ”„๋กœ์„ธ์Šค ํฌํ•จ)๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ฐ ๋…ธ๋“œ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ssh-agent ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  2. ๋…ธ๋“œ ํ”„๋กœ์„ธ์Šค์—์„œ ssh-agent๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€ (์˜ˆ : ํŒŒ์ผ์— ์ธ์‡„) ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํ™•์‹คํžˆ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํ•œ ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ๊ณต์‹ ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค :)

@joaomoreno ๋ถ€๋ถ„ ์ˆ˜์ •์ด ์ค€๋น„๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

extensions/git/src/askpass.ts ํŒŒ์ผ์—์„œ getEnv() ์„ ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

getEnv(): Promise<any> {
        return this.portPromise.then(port => ({
            ELECTRON_RUN_AS_NODE: '1',
            GIT_ASKPASS: path.join(__dirname, 'askpass.sh'),
            VSCODE_GIT_ASKPASS_NODE: process.execPath,
            VSCODE_GIT_ASKPASS_MAIN: path.join(__dirname, 'askpass-main.js'),
            VSCODE_GIT_ASKPASS_PORT: String(port),
            SSH_AUTH_SOCK: process.env['SSH_AUTH_SOCK'],
            SSH_AGENT_PID: process.env['SSH_AGENT_PID'],
            SSH_ASKPASS: process.env['SSH_ASKPASS'] || '/usr/lib/ssh/x11-ssh-askpass'
        }));
    }

SSH_AUTH_SOCK ๋Š” ์„ค์ •๋œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์—์„œ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

| ssh-agent | ์—์ด์ „ํŠธ์—๋กœ๋“œ ๋œ ssh ํ‚ค | ๊ฒฐ๊ณผ |
| : --- : | : --- : | : --- : |
| โœ” | โœ” | โœ” |
| โœ” | โœ˜ | $ SSH_ASKPASS ์‹คํ–‰ |
| โœ˜ | โœ˜ | ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค |

๋”ฐ๋ผ์„œ ๋‘ ๋ฒˆ์งธ ํ–‰์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด askpass.ts ์—์„œ๋„ SSH_ASKPASS ๋ฅผ ์„ค์ •ํ•˜๋ฉด VSCode๊ฐ€ ์‹œ์ž‘์‹œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•˜๊ณ  SSH ํ‚ค ์•”ํ˜ธ๋ฅผ ์š”์ฒญํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ ํ–‰์˜ ๊ฒฝ์šฐ VSCode ๋‚ด์—์„œ ssh-agent๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์ ์ ˆํ•œ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ž์› ๋ด‰์‚ฌ์ž?

๋ˆ„๊ตฐ๊ฐ€ ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธ ํ•  ์˜ํ–ฅ์ด ์žˆ๋‹ค๋ฉด ๋‚ด ํฌํฌ (https://github.com/hashhar/vscode)๋ฅผ ๋ณต์ œํ•˜๊ณ  git-ssh-key ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜ํ•˜์—ฌ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ํ‘œ์—์„œ ๋ชจ๋“  ์กฐํ•ฉ์—์„œ ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์—ฌ๊ธฐ์„œ ์†Œ์Œ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์˜๊ฒฌ์„ ์ œ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@hashhar ์ „์ฒด process.env ๋Š” ์Šคํฐ ํ•  ๋•Œ ํ•ญ์ƒ Git์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

https://github.com/Microsoft/vscode/blob/master/extensions/git/src/git.ts#L383

ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ์Šค ๋‹ˆํŽซ์—†์ด ์ „๋‹ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

@joaomoreno ์ข‹์•„์š”. ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋ฉด ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. VSCode๋Š” SSH_ASKPASS ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. '/ usr / lib / ssh-ssh-askpass'๋กœ ํ•˜๋“œ ์ฝ”๋”ฉ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” VSCode๊ฐ€ ์‚ฌ์šฉ์ž์˜ ssh-key ์•”ํ˜ธ๋ฅผ ์–ป๊ธฐ์œ„ํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค ์ฃผ์–ด Git์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฆฌ๋ˆ…์Šค์—์„œ ๋Œ€๋ถ€๋ถ„์˜ ๋„๊ตฌ๋Š” '/ usr / lib / ssh / ssh-askpass'์— ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ณตํ•˜์ง€๋งŒ ๋งŽ์€ ๋„๊ตฌ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ์€ ์‚ฌ๋žŒ๋“ค์ด ํƒ€๊ฒฉ์„ ์ž…๋Š” ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ssh-key๊ฐ€ ์ด๋ฏธ ssh-agent ํ‚ค๋ง์— ์ถ”๊ฐ€ ๋œ ํ•œ SSH์™€ ํ•จ๊ป˜ VSCode๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์–ด๋ฆฌ์„์€ ๊ฒƒ ๊ฐ™์•„์š”.

ํ•  ๊ฒƒ:

  1. ssh์— ๋Œ€ํ•ด์„œ๋„ vscode-askpass.ts ๋“ฑ์„ ํ™•์žฅํ•˜์‹ญ์‹œ์˜ค.
  2. ์•„์ง ์‹คํ–‰ ์ค‘์ด ์•„๋‹ˆ๋ฉด ssh-agent๋ฅผ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ๋‹จ์ง€ ํŽธ๋ฆฌํ•œ ๋ฌธ์ œ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ฐ git ์ž‘์—…์— ๋Œ€ํ•œ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ฒ ์ €ํžˆ ์ผํ•˜์ง€ ๋ชปํ•ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

๊ฑฑ์ • ๋งˆ์„ธ์š”, ๋‹น์‹ ์ด ์ด๊ฒƒ์— ๋›ฐ์–ด ๋“œ๋Š” ๊ฒƒ์ด ๋ฉ‹์ง€๋‹ค! ๐Ÿ‘

๋‚˜๋Š” ์ž ์‹œ ๋™์•ˆ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ๊ทธ๊ฒƒ์ด ๋‚˜๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•œ ์ง„์ „์ด ๋” ์žˆ์Šต๋‹ˆ๊นŒ?

+1

+1

+1

+1

์ŠคํŒธ์„ ์ค‘์ง€ํ•˜์„ธ์š”! ๊ตฌ๋… ๋ฒ„ํŠผ๊ณผ ๋ฐ˜์‘ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์“ธ๋ฐ์—†๋Š” ๋Œ“๊ธ€์„ ์“ฐ์ง€ ๋งˆ์„ธ์š”.

๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

image

์ด์ƒํ•˜๊ฒŒ๋„, ์ด๊ฒƒ์€ Git Bash์—์„œ ์ž‘๋™ํ•˜์ง€๋งŒ Windows ์šฉ Bash์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ Permission denied (publickey) ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ•จ).

$ eval `ssh-agent`
$ ssh-add /path/to/key
$ code

๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ์›๊ฒฉ์œผ๋กœ ์ง์ ‘ sshingํ•˜์—ฌ SSH ํ‚ค๊ฐ€ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ์ฐจ์ด์ ์€ Windows ์šฉ Bash์—์„œ ์‹œ์ž‘ํ•  ๋•Œ VSCode๊ฐ€ ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๊ฒฝ๊ณ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ๊ฐ™์€ ๋ฌธ์ œ, ๊ฑฐ์˜ ๋ชจ๋“  ์ œ์•ˆ ๋œ ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” MacOs์— ์žˆ์Šต๋‹ˆ๋‹ค

@DavidBabel ๋‚˜๋Š” MacOs์— ์žˆ์œผ๋ฉฐ ์•”ํ˜ธ์—†์ด ssh ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ์‹œ์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค ...

@letsdevus ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์•ˆํƒ€๊น๊ฒŒ๋„ ์ „๋ฌธ์ ์ธ ์ƒํ™ฉ์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ์ž‘๋™์‹œํ‚ค๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. PuTTY ์ œํ’ˆ๊ตฐ ์„ค์น˜
  2. plink ๋ฅผ Git SSH ๋ฐฑ์—”๋“œ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค (ํ™˜๊ฒฝ ๋ณ€์ˆ˜ GIT_SSH ).
  3. PuTTYgen์— ์•ก์„ธ์Šค ํ‚ค ์ถ”๊ฐ€
  4. ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ plink๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€ ํŠธ๋ฆญ์ž…๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ์— ๋ถ€๋”ช ํžˆ๊ณ  VSCode์˜ ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ๋…ธํ‚น์„ ๊ณ„์† ์‹œ๋„ํ•จ์— ๋”ฐ๋ผ ๐Ÿ‘Ž

์ด ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๋ง™๊ฒŒ๋„ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• (์…ธ์—์„œ ์ฝ”๋“œ ์‹œ์ž‘)์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํผํ‹ฐ ์†”๋ฃจ์…˜๋„ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์ง€๋งŒ ํผํ‹ฐ๋ฅผ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋„ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฌด์šฉ์œผ๋กœ ๋ณ„๋„์˜ ๊ณ„์ •์„ ์„ค์ •ํ•˜๊ณ  ๊ฐœ์ธ ๊ณ„์ •์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ์ž‘์—… ํŒŒ์ผ ์ž‘์—…์„ ๋งŽ์ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ†ต๊ณผ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋งค๋ฒˆ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์‚ด์ธ์ž๋Š” ์•„๋‹ˆ์ง€๋งŒ ์ƒ์‚ฐ์„ฑ์ด ํ›จ์”ฌ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

VSC UI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๋ ค๋Š” ์‹œ๋„๊ฐ€ ssh ์Šคํƒ€์ผ์˜ git URL์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์ด ์กฐ๊ธˆ ์‹ค๋ง ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ก์„ ์œ„ํ•ด ์•”ํ˜ธ๋กœ ๋ณดํ˜ธ ๋œ SSH ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ SSH ์—์ด์ „ํŠธ๋ฅผ ์ž์ฃผ ์‹คํ–‰ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . ํŠนํžˆ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ‘ธ์‹œ ํ•  ๋•Œ ํ‚ค๋ฅผ ์ž ๊ธˆ ํ•ด์ œํ•˜๋Š” ์ถ”๊ฐ€ ์•”ํ˜ธ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์‹ค์ œ๋กœ ๋‹ค์†Œ ์•ˆ์‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :-) ๋ช…๋ น ์ค„์ด ๋‚˜์—๊ฒŒ ์ž˜ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋‹ค์ง€ ํฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๊ธฐ๋ก์„ ์œ„ํ•ด macOS์—์„œ VS ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.)

@gdamore ๊ทธ๋ž˜์„œ ์—์ด์ „ํŠธ ์—†์ด๋Š” ์‹ค์ œ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ...ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” Windows์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜
์–ด์จŒ๋“  SSH ํ‚ค์˜ ํŒŒ์ผ ์ด๋ฆ„์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํ‘œ์ค€์ธ๊ฐ€์š”? ์•„๋‹ˆ๋ฉด VSCode๊ฐ€ ์ ์ ˆํ•œ ํŒŒ์ผ์„ ์ฐพ๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๊นŒ?

ํ‘œ์‹œ๋œ๋Œ€๋กœ ์ฃผ๋กœ macOS์—์„œ VScode๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด Windows์—์„œ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ „ํ˜€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ๋‚˜๋Š” Windows์—์„œ git ์ปค๋ฐ‹ํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ๊ณต์œ  ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค (๋‚ด Windows ๊ฐœ๋ฐœ ์ธ์Šคํ„ด์Šค๋Š” Mac์˜ VM ๋‚ด์—์„œ ๊ฒŒ์ŠคํŠธ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.)

๋‚˜๋„์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น ์ค„์— ์ „ํ˜€ ๋ฌธ์ œ๊ฐ€ ์—†์ง€๋งŒ ์•ฑ ์ž์ฒด ๋‚ด์—์„œ git ํ™œ๋™์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์—†์Œ

์ž‘์—… ์ปจํ…์ŠคํŠธ์—์„œ vscode๋ฅผ git ide๋กœ ์“ธ๋ชจ ์—†๊ฒŒ ๋งŒ๋“ค๊ธฐ

์ด ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ๋”ฐ๋ผ ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

http://www.cgranade.com/blog/2016/06/06/ssh-keys-in-vscode.html

๋‚˜๋Š” stackoverflow์— ๋Œ€ํ•œ์ด ๊ฒŒ์‹œ๋ฌผ์— ๋”ฐ๋ผ ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

https://stackoverflow.com/questions/34634364/to-use-git-push-on-visual-studio-code-but-show-could-not-read-from-remote-re

์•”ํ˜ธ๋กœ ๋ณดํ˜ธ ๋œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” OSX์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์†”๋ฃจ์…˜ :

C:\Program Files\PuTTY\plink.exe ๊ฒฝ๋กœ์™€ ํ•จ๊ป˜ GIT_SSH ๋ผ๋Š” ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค ( tortoise git ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ์ธ ํ‚ค์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์„ฑํ•œ ํ›„).

์ด๊ฒƒ์€ ์ˆ˜์ •์ด ํ•„์š”ํ•˜๋ฉฐ VS Code๋ฅผ ์ผ์ผ ํŽธ์ง‘๊ธฐ๋กœ ๋งŒ๋“ค์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. : / ๋ฌธ์ œ์˜ ์ง„ํ–‰ ์ƒํ™ฉ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

ssh-add ์—์„œ ssh ์ž๊ฒฉ ์ฆ๋ช…์„ ์–ป์œผ๋ ค๋ฉด vscode๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์†Œ์Šค ํŠธ๋ฆฌ๋Š” ์ถ”๊ฐ€ ๊ตฌ์„ฑ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ž๊ฒฉ ์ฆ๋ช… (osxkeychain ์‚ฌ์šฉ?)์„ ๊ฐ์ง€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree commit -q -F /var/folders/_0/bvqq9l5d2ngg0stvkf53jrbr0000gn/T/SourceTreeTemp.ccbSGv 


git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags --set-upstream origin refs/heads/master:refs/heads/master 
Pushing to [email protected]:hanxue/gif-is-jif.git
To github.com:hanxue/gif-is-jif.git
   4eed265..762069a  master -> master
updating local tracking ref 'refs/remotes/origin/master'
Branch master set up to track remote branch master from origin.
Completed successfully

๋‚˜๋Š” ์˜ค๋Š˜์ด ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์œผ๋ฉฐ Linux mint์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ‚ค ์ฒด์ธ์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

sudo apt install keychain

eval 'keychain --eval SSHKEY'
๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒŒ ๋‹ค์•ผ.

@ Silentz0r ๋งˆ์ง€๋ง‰ ๋ช…๋ น์„ ์–ด๋””์—์„œ ์‹คํ–‰ ํ–ˆ์Šต๋‹ˆ๊นŒ?

์…ธ ์—์„œ

์—ฌ๋Ÿฌ๋ถ„, ์šฉ๊ฐํ•œ ์ฝ”๋”๊ฐ€ PR์„ ์ œ๊ณตํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

OSX์—์„œ๋Š” https://github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain ๋•๋ถ„์— ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

~/.ssh ์—์„œ ๋‹ค์Œ ์ฝ˜ํ…์ธ ๋กœ config ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

Host * (asterisk for all hosts or add specific host)
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile <key> (e.g. ~/.ssh/userKey)

๋ฟก ๋นต๋€จ
๋‚ด๊ฐ€ ์–ผ๋งˆ๋‚˜ "์šฉ๊ฐํ•œ"์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ๋‚˜๋Š” ์•ฝ๊ฐ„์˜ SSH ํŒฌ์ž…๋‹ˆ๋‹ค.
12 ์›” PR ์ž‘์—…์„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ๋œ ๋ชจ๋“  ์‹œ๋ฏผ๋“ค ...

๋น ๋ฅธ ์„ค์ • ํ…Œ์ŠคํŠธ ํ›„ Windows 7 ๊ตฌ์„ฑ์ด ๋งค์šฐ ๊ฐ„๋‹จ ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค (GIT_SSH ๋ฐ ๊ธฐํƒ€ ์„ค๋ช… ์ฐธ์กฐ). ํ‚ค ์ฒด์ธ์„ ์‚ฌ์šฉํ•˜๋Š” OS X๋„ ๋˜‘๊ฐ™์ด ์‰ฝ์Šต๋‹ˆ๋‹ค.
์„ค์ •์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์™ธ๋ถ€ ๊ตฌ์„ฑ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. VSC๋Š” SSH๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑ์ด๋‚˜ ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ git์€ SSH ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ฐฑํ•œ ๊ฒƒ์„ ๋†“์นœ๋‹ค๋ฉด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

์„ค์ •์„์œ„ํ•œ ๋งˆ๋ฒ•์‚ฌ ์™ธ์— ์ฝ”๋“œ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ์œ ์ต ํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.
ํ•œ ์˜๊ฒฌ์€ ์•„๋งˆ๋„ workSpace ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ์ˆ˜์žˆ๋Š” ๋‘˜ ์ด์ƒ์˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์–ธ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์กฐ์ฐจ ๋ชจ๋‘ ์—์ด์ „ํŠธ๊ฐ€ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ์Šต๋‹ˆ๋‹ค. git์ด ์ด๊ฒƒ์„ ์•„์ฃผ ์ง์ ‘์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ์— ssh๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์— ๊ด€ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณด์•ˆ ์—์ด์ „ํŠธ๊ฐ€ ์‹ค์ œ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.
pagent / keychain ๋“ฑ.

์ฝ”๋ฉ˜ํŠธ?

"VSC๋Š” SSH๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑ์ด๋‚˜ ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. git์€ SSH ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋ถ„๋ช…ํ•œ ๊ฒƒ์ด ์—†์œผ๋ฉด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค."

(Windows์—์„œ)

๋ฌด์Šจ ์ผ์ด์•ผ
๋ฐ”๋กœ ๊ฐ€๊ธฐ์—์„œ VS Code๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ํƒ€์‚ฌ ์†Œํ”„ํŠธ์›จ์–ด๋„ ๋‹ค์šด๋กœ๋“œํ•˜์ง€ ์•Š๊ณ  ์ผ๋ถ€ ๋ช…๋ น ์ค„ ๊ตฌ์„ฑ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์•”ํ˜ธํ™” ๋œ SSH ํ‚ค์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด์— Eclipse๋ฅผ ์—ด๊ณ  Git ์ €์žฅ์†Œ์— ์—ฐ๊ฒฐํ•˜๋ฉด ํ‚ค์— ๋Œ€ํ•œ ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒ
๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์€ ์‹œ์Šคํ…œ์— VSCode๋ฅผ ์ƒˆ๋กœ ์„ค์น˜ํ•˜๋ฉด ๋‚ด ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€ ์ƒ์ž๊ฐ€ ํ‘œ์‹œ๋˜๊ณ ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด ํ‚ค๋ฅผ ํ•ด๋…ํ•˜๊ณ  ์›๊ฒฉ ์ €์žฅ์†Œ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

@cleidigh SourceTree๋Š” @ItachiSan ์˜ ์ง€์นจ์„

ํ—‰ํ—‰
์•ˆ๋…•ํ•˜์„ธ์š”.
Eclipse์™€ ์†Œ์Šค ํŠธ๋ฆฌ๋ฅผ ์กฐ๊ธˆ ์‚ดํŽด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์•ˆํƒ€๊น๊ฒŒ๋„ ํ˜„์žฌ ๋‚ด ์‹œ์Šคํ…œ์— ์ด๋“ค ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ Google์— ์˜ํ•ด ์ง€์‹๊ณผ ๊ฒฝํ—˜์ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ;-) ๋ˆ„๋ฝ ๋œ ํ•ญ๋ชฉ์ด์žˆ๋Š” ๊ฒฝ์šฐ์ด๋ฅผ ์—ผ๋‘์— ๋‘์‹ญ์‹œ์˜ค. ๋‹ค์Œ์€ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ์š” / ์ฐจ์ด์ ์ž…๋‹ˆ๋‹ค.

Eclipse : EGit ํ”Œ๋Ÿฌ๊ทธ์ธ : Java git ํด๋ผ์ด์–ธํŠธ ํฌํ•จ, ssh ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‚ด๋ถ€ ์ธ ๊ฒƒ์œผ๋กœ ๋ณด์ž„, ๊ธฐ์กด ํ‚ค์ธ ๊ฒฝ์šฐ ํ‚ค ๊ฐ€์ ธ ์˜ค๊ธฐ ํ•„์š”

SourceTree : ๊ทธ๋ž˜ํ”ฝ ๊ฐ€์ ธ ์˜ค๊ธฐ ํด๋ผ์ด์–ธํŠธ, ์™ธ๋ถ€ ssh ํด๋ผ์ด์–ธํŠธ ํ•„์š” (์•„๋ž˜ ์Šคํฌ๋ฆฐ ์ƒท์—์„œ Windows์˜ plink ๊ฐ€์ •) @BeginnerForLife ์ด ์„ค์ •์ด ํ˜„์žฌ ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ๊ทธ๋ฆฌ ๋ฉ€์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

image

VSC : ์™ธ๋ถ€ git / ssh ํ•„์š”

@andrewducker ์ฝ”๋“œ๊ฐ€ git๊ณผ SSH (ํ‚ค ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ ํฌํ•จ)๋ฅผ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ท€ํ•˜์˜ ์„ค๋ช…์€ ๋‚ด ์˜๊ฒฌ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์‚ฌ์ด์— ๋งŽ์€ ๊ฒƒ์ด ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํŒ€์ด์ด ๋‘ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์–ด ํ•  ๊ฒƒ์ด๋ผ๋Š” ๋ฐ ํšŒ์˜์ ์ž…๋‹ˆ๋‹ค. @joaomoreno ๋Š”
์‹ค์šฉ์ ์ธ ๊ด€์ ์—์„œ ๋‹ค์Œ์„ ์ง€์ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  • "์‰ฝ๊ฒŒ ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š”"git ํ™˜๊ฒฝ์€ ๊ธฐ๋ณธ ์ œ๊ณต HTTPS ์‚ฌ์šฉ์— ๋” ์ ํ•ฉํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์™ธ๋ถ€ git์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • SSH๊ฐ€ ํ•„์š”ํ•œ ์ž‘์—… ์ƒํ™ฉ์˜ ๊ฒฝ์šฐ ์ •์ฑ… ๋ฐ ssh๊ฐ€์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’๋‹ค๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค.
    ์ด๋ฏธ ํšจ๊ณผ๊ฐ€์žˆ๋Š” ๋„๊ตฌ, ๊ทธ๊ฒƒ์ด ์ œ๊ฐ€ ์ผํ•ด์˜จ ๋‹ค์–‘ํ•œ ํšŒ์‚ฌ์—์„œ ๊ฒฝํ—˜ ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์œ„์˜ ๋‚ด์šฉ์— ๋™์˜ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ์™ธ๋ถ€ ๋„๊ตฌ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์‹œ๋‚˜๋ฆฌ์˜ค๋ณด๋‹ค ๋” ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
    ssh / git์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋˜๋Š” ๋…๋ฆฝํ˜•์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ช…ํ™•ํ•˜๊ฒŒ ๋งํ•˜๋ฉด, ๋‚˜๋Š” ssh๊ฐ€ ์œ ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•”์‹œํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค .VSC๊ฐ€ ๋กœ์ปฌ SSH ํด๋ผ์ด์–ธํŠธ์—์„œ git์„ ๊ฐ€๋ฆฌํ‚ค๋ฉด ์ž‘๋™ํ•˜๊ณ  ์ƒ๋‹นํžˆ ์‰ฝ๊ฒŒ ์ž‘๋™ํ•œ๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๋‚˜๋Š” ์ด๊ฒƒ์ด ํ™•์žฅ์œผ๋กœ ๋‹ฌ์„ฑ ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ ๋‚ด๋ถ€์—์žˆ๋Š” git / ssh ๋‘˜ ๋‹ค์—†์ด ์ž์‹ ์„ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ, ์•„์ง ๋” ์ ์€ ์˜ต์…˜์„ ๊ฒฐ์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ์ ˆ๋Œ€์ ์œผ๋กœ ๊ธฐ๊บผ์ด ๋…ธ๋ ฅํ•˜์ง€๋งŒ ํŒ€์˜ ๋ชฉํ‘œ์™€ ์ผ์น˜ํ•˜๊ณ  ํŠนํžˆ @joaomoreno ๋กœ๋ถ€ํ„ฐ ์ถ•๋ณต์„

@cleidigh ๋‚˜๋Š” ๊ณ„ํš์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

๋ฟก ๋นต๋€จ
๋‚˜๋Š” ๋‹ค๋ฅธ ๋‹น์‚ฌ์ž๋กœ๋ถ€ํ„ฐ ๋” ๋งŽ์€ ์‘๋‹ต์„ ์›ํ–ˆ์ง€๋งŒ ๊ฐ€๋Šฅํ•œ ๊ณ„ํš์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์˜๊ฒฌ / ์„ ํ˜ธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๋ถ„๋ช…ํžˆ ๋งํ•˜๋ฉด ์ฝ”๋“œ๋Š” ์•ฝ๊ฐ„์˜ ์™ธ๋ถ€ ๊ตฌ์„ฑ๋งŒ์œผ๋กœ git์„ ํ†ตํ•œ SSH ๊ฐœ์ธ ํ‚ค ์•ก์„ธ์Šค์— ๋Œ€ํ•ด ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ผ๋ถ€๋Š” ๋” ํฐ ํ†ตํ•ฉ๊ณผ ํ–ฅ์ƒ๋œ ๋ณธ์ธ ๋ถ€๋‹ด ๊ฒฝํ—˜์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๊ฐ€๋Šฅํ•œ ์ ‘๊ทผ ๋ฐฉ์‹ :

1- git / ssh ์„ค์ • ๋„์šฐ๋ฏธ / ๋งˆ๋ฒ•์‚ฌ ๊ตฌํ˜„-ssh ์ฐพ๊ธฐ, GIT_SSH ์„ค์ •-๋‚ด๋ถ€ ์ถ”๊ฐ€
2- ํ™•์žฅ์œผ๋กœ ๊ตฌํ˜„ ๋œ 1๊ณผ ๋™์ผ
3- ์ดˆ๊ธฐ ์„ค์ •์„ ์œ„ํ•ด SSH / git ๋‹ค์šด๋กœ๋“œ๋ฅผ ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์œ„ ํ™•์žฅ
4- SSH ํด๋ผ์ด์–ธํŠธ / ๋„๊ตฌ ๊ตฌํ˜„-๋‚ด๋ถ€ ์ถ”๊ฐ€
5- ํ™•์žฅ์œผ๋กœ ๊ตฌํ˜„ ๋œ 4์™€ ๋™์ผ
6- ๋‚ด๋ถ€์ ์œผ๋กœ git / SS H ๊ตฌํ˜„-eclipse / egit๊ณผ ์œ ์‚ฌ

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์‚ฌ๋žŒ๋“ค์ด ๋งํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  1 ๋ฒˆ์ด๋ฉด ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค (์•„๋งˆ 3). ์˜ต์…˜ 4-6์€ ๋„ˆ๋ฌด ๋งŽ์€ ๋…ธ๋ ฅ๊ณผ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ํฐ ๋ณ€๊ฒฝ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์„ค์ • @joaomoreno / all?

Windows์—์„œ Git๊ณผ ํ•จ๊ป˜ VS Code๋ฅผ ์‚ฌ์šฉ ํ•ด๋ณด๊ณ  ๋ฌธ์ œ์ ์„ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ €์—๊ฒŒ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” ์ธ์ฆ์ž…๋‹ˆ๋‹ค.

์˜ต์…˜ 1์€ ํ™•์‹คํžˆ ์ œ๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”.
๋„์šฐ๋ฏธ / ssh ๊ฒ€์ƒ‰์ด ์žˆ๊ณ  ์„ค์ •ํ•˜๋ฉด ๋„์›€์ด๋ฉ๋‹ˆ๊นŒ?
ํด๋ผ์ด์–ธํŠธ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ Windows ์šฉ git์— ๋Œ€ํ•ด ssh๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค (์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค) ๋ฐฉ๊ธˆ GIT_SSH๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค
์—์ด์ „ํŠธ์™€ ํ•จ๊ป˜ ํ‚ค ์ง€๋ฌธ๋„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

@joaomoreno ๊ธฐ๋ณธ ์„ค์ • ๋‹น ์˜ต์…˜ 1์— ์ค‘์ ์„

  • ssh, start helper๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ์†Œ๊ฐ€์žˆ๋Š” ์ž‘์—… ๊ณต๊ฐ„ ๊ฐ์ง€
  • ์–ธ์ œ๋“ ์ง€ ๋„์šฐ๋ฏธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ น ์ œ๊ณต
  • ์„ค์น˜๋œ SSH ๊ฒ€์ƒ‰, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • ํ™•์ธ
  • SSH๋ฅผ ์ฐพ์„ ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒฝ๊ณ ํ•˜๊ณ  ์ ์ ˆํ•œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ œ์•ˆ / ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • ์ œ์•ˆ
  • ์‚ฌ์šฉ์ž์—๊ฒŒ ์‚ฌ์šฉํ•  ๊ฐœ์ธ ํ‚ค๋ฅผ ์š”์ฒญํ•˜๊ณ  ์—์ด์ „ํŠธ์— ์ง€๋ฌธ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ๋ชจ๋“  ๊ฒƒ์ด ์‹ค์šฉ์ ์ด๋ผ๊ณ  ๋ฏฟ์ง€๋งŒ ์•ฝ์† ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ๋‹ค๋ฅธ ๊ธฐ๋ฐœํ•œ ์•„์ด๋””์–ด๊ฐ€ ์—†๋‹ค๊ณ  ๊ฐ€์ •
๊ธฐ๋ณธ์ ์œผ๋กœ ์œ„์˜ ํ”„๋กœํ†  ํƒ€์ž…์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ํ”ผ๋“œ๋ฐฑ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

๋„ค, ๊ทธ ๊ธ€ ๋จธ๋ฆฌ ๊ธฐํ˜ธ๊ฐ€ ๊ทธ๊ฒƒ์„ ๋ฎ์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ (์‚ฌ์šฉ์ž์—๊ฒŒ ํ”„๋กฌํ”„ํŠธ ...)๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”.
๊ฐ์‚ฌ. ๋‚˜๋Š”์ด ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋‹ค๋ฅธ ์ž…๋ ฅ์— ์ฐจ์ž„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์‚ฌ๋žŒ๋“ค์ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€๋ณด๊ธฐ ์œ„ํ•ด PR์„ํ•˜๊ธฐ ์ „์— ๋‚ด ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ๊ฒŒ์‹œ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋‹ค์‹œ ํ™•์ธํ•˜์„ธ์š”.
๋‚ด ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” (1)์ด ์ตœ์„ ์˜ ์ ‘๊ทผ ๋ฐฉ์‹์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด๊ฐ€ ์ง€๊ธˆํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค. ์•„์ง ์‹คํ–‰ ์ค‘์ด ์•„๋‹ˆ๋ฉด ssh-agent๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ • ํ•œ ๋‹ค์Œ ํ•ด๋‹น ๋ช…๋ น ์ค„์—์„œ VS-Code๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

VS Code๊ฐ€ SSH-Agent๊ฐ€ ์ด๋ฏธ ์‹คํ–‰๋˜๊ณ  ์žˆ์ง€ ์•Š์€์ง€ ํ™•์ธํ•œ ๋‹ค์Œ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‹œ์ž‘ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด PowerShell์˜ Git ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋…ผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
https://help.github.com/articles/working-with-ssh-key-passphrases/
๋”ฐ๋ผ์„œ ๋…ธ๋“œ ๊ด€์ ์—์„œ ์ž‘๋™ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค (์•„๋งˆ๋„ ๋ชจ๋“  OS์—์„œ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค)

@andrewducker cc : ๋ชจ๋‘

์—…๋ฐ์ดํŠธ : ๋‚˜๋Š” ์ด์ „ PR๋กœ ๋Œ์•„ ๊ฐ€์•ผํ–ˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋งŽ์€ ์ง„์ „์„ ์ด๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค.

  • GIT_SSH ํ™•์ธ / ์„ค์ •, git ํด๋ผ์ด์–ธํŠธ, ํ‚ค ์—์ด์ „ํŠธ ํ™•์ธ๊ณผ ๊ฐ™์€ ์‰ฌ์šด ์ž‘์—… ์™ธ์—๋„
  • ๋˜ํ•œ Windows ํ‚ค ์—์ด์ „ํŠธ๊ฐ€ ์‹œ์ž‘ ํ›„ ํ‚ค ์ถ”๊ฐ€๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ ์•„๋ž˜์— ์ƒˆ ํ‚ค๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.์ด ํ‚ค ์—์ด์ „ํŠธ๋Š” ์ž์ฒด์ ์œผ๋กœ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์Œ ์‹คํ—˜์€ ์‹คํŒจํ•œ SSH ๋กœ๊ทธ์ธ์„ ๊ฐ์ง€ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€์ž…๋‹ˆ๋‹ค.

ํ•˜๋ฃจ ์ •๋„๋ฉด์ด ๋ฌธ์ œ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์•”ํ˜ธ๋กœ ๋ณดํ˜ธ๋˜๋Š” ๊ธฐ๋ณธ ๊ฐœ์ธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ macOS High Sierra์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์•”ํ˜ธ๋Š” ๋กœ๊ทธ์˜จ ์„ธ์…˜ ์ค‘์— OS ํ‚ค ์ฒด์ธ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. Mac์„ ์žฌ๋ถ€ํŒ… ํ•  ๋•Œ ์ถ”๊ฐ€ ๋ณด์•ˆ์„ ์œ„ํ•ด ์ฒซ ๋ฒˆ์งธ git pull / git push ์ „์— ๋‹ค์‹œ ์ž…๋ ฅํ•ด์•ผํ•˜๋ฉฐ ๊ทธ ์ดํ›„๋กœ ๋กœ๊ทธ ์˜คํ”„ ํ•  ๋•Œ๊นŒ์ง€ ์•”ํ˜ธ๋ฅผ ๋ฌป์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ์ฒ˜์Œ์œผ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•  ๋•Œ ํ„ฐ๋ฏธ๋„์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

$ cd /path/to/repo
$ git pull
Enter passphrase for key '/Users/me/.ssh/id_rsa':
[me typing passphrase and pressing enter]
Updating 3e97c76..65a959c

๊ทธ๋Ÿฌ๋‚˜ ์žฌ๋ถ€ํŒ… ํ›„ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ฐ€์ ธ ์˜ค๋ ค๋Š” ๊ฒƒ์ด VSCode ์ธ ๊ฒฝ์šฐ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

screen shot 2018-02-12 at 11 05 09

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•˜์—ฌ git pull ์ž…๋‹ˆ๋‹ค. ์žฌ๋‚œ์€ ์•„๋‹ˆ์ง€๋งŒ ๊ฐœ์„  ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

__UPD : __ ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ์ƒˆ ์ปค๋ฐ‹์— ์„œ๋ช…ํ•˜๊ธฐ ์œ„ํ•ด GPG ํ‚ค ์•”ํ˜ธ๋ฅผ ์š”๊ตฌํ•  ๋•Œ VSCode๋Š” ์ฆ‰์‹œ ์ž‘๋™ํ•˜๊ณ  ์ž…๋ ฅ ํ•„๋“œ๊ฐ€์žˆ๋Š” ํŒ์—… ์ฐฝ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ์ƒํƒœ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

ํ˜„์žฌ Git: [email protected]: Permission denied (publickey). ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

~\.ssh ์—์„œ ํ‚ค ์Œ์„ ์ƒ์„ฑ ํ•œ ์‚ฌ์šฉ์ž๋Š” ๋ช…๋ น ์ค„์„ ํ†ตํ•ด ํ‚ค ์Œ์˜ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ธ์ฆ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ VS Code ๋‚ด์—์„œ๋Š” ์ธ์ฆ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@cleidigh ํ–‰์šด์ด ์žˆ์Šต๋‹ˆ๊นŒ?
๋ˆ„๊ตฌ๋“ ์ง€ ์•”ํ˜ธ ์š”์ฒญ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ€๋กœ ์ฑŒ ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๊ฐ€๋กœ ์ฑ„๋ฉด ์›์ž๊ฐ€ํ•˜๋Š” ์ผ์„ํ•˜๊ณ  ์‚ฌ์šฉํ•  ํ…์ŠคํŠธ ์ƒ์ž๋ฅผ ์ œ๊ณต ํ•  ๊ธฐํšŒ๊ฐ€์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ atm ๋‚˜๋Š” ์•„์ด๋””์–ด๋ฅผ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ VSCode๊ฐ€ ์•„๋‹ˆ๋ผ ํ™˜๊ฒฝ์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ธฐ ์ „๊นŒ์ง€๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์ž๊ฒฉ ์ฆ๋ช… ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ssh, git ๋“ฑ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑํ–ˆ๋‹ค๋ฉด ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Linux์™€ Windows ๋ชจ๋‘ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์–ธ์ œ๋“ ์ง€ ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด ๊ฐ•์ œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ IDE์— ๋Œ€ํ•œ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด Eclipse์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์›๊ฒฉ git ์ €์žฅ์†Œ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•  ๋•Œ SSH ํ‚ค๋ฅผ ํ•ด๋…ํ•˜๊ธฐ์œ„ํ•œ ์•”ํ˜ธ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
Visual Studio Code๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

๋ชจ๋‘ : ์—…๋ฐ์ดํŠธ
๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๋‹นํ•œ ์ง„์ „์„ ์ด๋ฃจ์—ˆ์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์ด์œ ๋กœ ๊ทธ๊ฒƒ์„ ์ œ์ณ ๋‘์–ด์•ผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— 1 ์›” ์ดํ›„๋กœ ๋งŽ์€ ์ง„์ „์„ ์ด๋ฃจ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด 5 ์›”์— ์ง„ํ–‰๋˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๊ณ ์žˆ๋‹ค.

@ john681611 ๋‹˜์—๊ฒŒ @andrewducker

์Šค๋ ˆ๋“œ์˜ ์•ž๋ถ€๋ถ„์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ "๊นจ๋—ํ•˜๊ฒŒ"๊ตฌํ˜„ํ•  ์ˆ˜์—†๋Š” ํ•œ ๊ฐ€์ง€ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ
ํ”„๋กฌํ”„ํŠธ ๋˜๋Š” ๋ชจ๋“  ์œ ํ˜•์˜ ํ‚ค ๊ด€๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ๊ฐ€ ์™ธ๋ถ€ GIT์— ์˜์กดํ•˜๊ณ 
GIT๋Š” ์‹œ์Šคํ…œ SSH์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์œผ๋ฉด (์˜ˆ : Eclipse) ์ด๋Ÿฌํ•œ ์™ธ๋ถ€ ๊ตฌ์„ฑ ์š”์†Œ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์˜ต์…˜์ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

๋‚ด ํ˜„์žฌ ํ”„๋กœํ†  ํƒ€์ž…์€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์•„๋ž˜์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ๋งˆ๋ฒ•์‚ฌ๋ฅผ ์‹œ์ž‘ํ•œ ๊ฒฝ์šฐ ์ €์žฅ์†Œ๊ฐ€ SSH๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜ GIT_SSH ํ™•์ธ ๋ฐ ํ”„๋กฌํ”„ํŠธ
  • SSH ํด๋ผ์ด์–ธํŠธ ํ™•์ธ
  • ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ์—์„œ ์•”ํ˜ธ ๋Œ€ํ™” ์ƒ์ž ๊ฐ•์ œ ์‹คํ–‰ (WIP)์ด ํ”„๋กฌํ”„ํŠธ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฝ”๋“œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๋‚˜๋Š” Eclipse์ฒ˜๋Ÿผ ์‘๋‹ตํ•˜๋Š” ๊ฒƒ์ด @andrewducker ๋‹น

์ฐธ๊ณ  : ๋˜ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๊ณต์‹ GIT ํด๋ผ์ด์–ธํŠธ๊ฐ€ SSH๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๋” ๋งŽ์€ ๋ณด์•ˆ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋กํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋‘ / ์—…๋ฐ์ดํŠธ

์ €๋Š” ํ”„๋กœํ†  ํƒ€์ž…์˜ ๋งˆ์ง€๋ง‰์ด์ž ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„ ์ธ Askpass shim์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ์—์„œ ๊ธฐ๋ณธ ์•”ํ˜ธ ๊ตฌ GUI ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ๋„๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋ฉฐ ํ”Œ๋žซํผ์— ์ ํ•ฉํ•œ ssh-agent์™€ ํ•จ๊ป˜ ์ž๊ฒฉ ์ฆ๋ช…์ด ์ •์ƒ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ €์žฅ ๋  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

๋‚ด ๋ฌธ์ œ๋Š” SSH ๋˜๋Š” GIT๊ฐ€ Windows์˜ GIT Bash ๋˜๋Š” CMD์—์„œ SSH_ASKPASS, GIT_ASKPASS ๋˜๋Š” core.askpass๋ฅผ ์กด์ค‘ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„ ํ”„๋กฌํ”„ํŠธ ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ…Œ์ŠคํŠธ๋กœ์ด ์ค‘ ํ•˜๋‚˜ ๋˜๋Š” ๋ชจ๋‘๋ฅผ ๋‚ด์žฅ git-gui--askpass์— ์„ค์ •ํ–ˆ์ง€๋งŒ ๋ช…๋ น ์ค„์—์„œ ํ…Œ์ŠคํŠธํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ๋˜์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Windows ๋˜๋Š” ๊ธฐํƒ€ ๊ด€๋ จ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์•”ํ˜ธ ํ•ญ๋ชฉ์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

Sourcetree๋Š” ํ„ฐ๋ฏธ๋„๋„ ํŒ์—…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜์ง„ ์•Š์•„.

macOS 10.12 Sierra ์ด์ƒ์—์„œ @ValentinH ์˜ ์†”๋ฃจ์…˜์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด UseKeychain ์ง€์‹œ๋ฌธ AddKeysToAgent ์ง€์‹œ๋ฌธ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌ์„ฑ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

Host github.com
  HostName github.com
  IdentityFile /path/to/your/ssh/private/key
  UseKeychain yes

์ด๊ฒƒ์— ๋Œ€ํ•œ ์ƒํƒœ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

'14581 : VS Code์—์„œ "id_rsa"๋กœ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผํ•˜๋Š” git ssh ํ‚ค๊ฐ€์ด ๋ฌธ์ œ์˜ ์ค‘๋ณต์œผ๋กœ ๋‹ซํ˜”์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ค‘๋ณต๋˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค- "๊ฐœ์ธ ํ‚ค ์•”ํ˜ธ๋กœ git ์ง€์›". ์ด๋“ค์€ ๋ณ„๋„์˜ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์‹คํ–‰์ค‘์ธ ํ„ฐ๋ฏธ๋„์˜ ๋‹จ์ผ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ˆ˜์ •์ผ๋ฟ์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ฝ”๋“œ ์„ธ์…˜์—์„œ ์ƒˆ ํ„ฐ๋ฏธ๋„์„ ์—ฌ๋Š” ๊ฒฝ์šฐ์—๋„ ๊ณต๊ฐœ ํ‚ค ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ssh-agent๊ฐ€ ์–ด๋Š ์‹œ์ ์—์„œ ์ฃฝ์—ˆ๊ฑฐ๋‚˜ ๋‚ด๊ฐ€ git์— ์‚ฌ์šฉํ•˜๋Š” "id_rsa"๊ฐ€ ์•„๋‹Œ ํ‚ค๋ฅผ ์žŠ์–ด ๋ฒ„๋ฆฐ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐฉ๊ธˆ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

eval "$(ssh-agent -s)"
ssh-add path/to/my/github/ssh/private/key

๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์œผ๋กœ ๋Œ์•„ ์™”์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ GitHub๊ฐ€ ์–ด์จŒ๋“  ์ƒˆ SSH ํ‚ค๋ฅผ ์„ค์ •ํ•  ๋•Œ ์‹คํ–‰ํ•˜๋„๋ก ์ง€์‹œํ•˜๋Š” ์ผ๋ จ์˜ ๋ช…๋ น์ž…๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ์˜ ๋Œ€๋ถ€๋ถ„์„ ์ฝ์ง€ ์•Š์•˜์ง€๋งŒ ๋‚˜๋ฅผ ์œ„ํ•ด ์ด๊ฒƒ์€ ํšจ๊ณผ๊ฐ€ ์žˆ์Œ์„ ์ธ์ •ํ•ฉ๋‹ˆ๋‹ค.

@cleidigh @joaomoreno ์ด๊ฒƒ์€ ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ๋ผ ํŠนํžˆ macOS์—์„œ ssh ํ‚ค๋ฅผ ๋ถ€์ ์ ˆํ•˜๊ฒŒ ์„ค์ •ํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Sierra๋Š” ํ‚ค๊ฐ€ ์„ธ์…˜์— ์œ ์ง€๋˜๋Š” ๋ฐฉ์‹์„ ๊ทผ๋ณธ์ ์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

์•”ํ˜ธ์—†์ด ์ƒˆ sshkey๋ฅผ ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•„๋งˆ๋„ vscode๊ฐ€ ์•”ํ˜ธ๋ฌธ์„ ์ž…๋ ฅํ•˜๋„๋ก ์…ธ์„ ์—ด ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ssh-add -K ~/.ssh/id_rsa Mac ํ‚ค ์ฒด์ธ์— ๋‚ด ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ id_rsa ๋ฅผ ํ‚ค๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

Windows 10์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• :

  1. Git์ด Git๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๊ฒƒ ๋Œ€์‹  Windows์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” OpenSSH๋ฅผ ์‚ฌ์šฉํ•˜๋„๋กํ•ฉ๋‹ˆ๋‹ค.
    git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
  2. ssh-agent ์„œ๋น„์Šค (git์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜์ง€ ์•Š์Œ)๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    ์ž‘์—… ๊ด€๋ฆฌ์ž, ์„œ๋น„์Šค ํƒญ์„ ์—ด๊ณ  ์„œ๋น„์Šค ์—ด๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    OpenSSH ์ธ์ฆ ์—์ด์ „ํŠธ๋ฅผ ์ฐพ์•„ ์†์„ฑ์„ ์—ด๊ณ  ์‹œ์ž‘ ์œ ํ˜•์„ ์ž๋™์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ํ™•์ธ์„ ๋ˆ„๋ฅด์‹ญ์‹œ์˜ค.
    ๋˜ํ•œ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.
  3. ์—์ด์ „ํŠธ์— ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋ณดํ˜ธ ๋œ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
    ssh-add
    ssh-keygen์ด ์ƒ์„ฑํ•˜๋Š” C : Users \ % USERNAME % \. ssh์— ์ €์žฅ๋œ ํ‚ค๋ฅผ ์ž๋™์œผ๋กœ ์„ ํƒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
    ํ”„๋กฌํ”„ํŠธ์— ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค.

์ฐธ๊ณ  : Windows ์šฉ Git์„ ์„ค์น˜ํ•  ๋•Œ PATH์— bash ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜๋Š” ์˜ต์…˜์„ ์„ ํƒํ•œ ๊ฒฝ์šฐ ssh-add ๋ช…๋ น์ด ์ž˜๋ชป๋œ ์‹คํ–‰ ํŒŒ์ผ์„ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ํฌํ•จ ๋œ ํ‚ค๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ ์—์ด์ „ํŠธ์— ํ‚ค๋ฅผ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
C:\Windows\System32\OpenSSH\ssh-add.exe

์ด์ œ ๊ธฐ๋ณธ ์ œ๊ณต OpenSSH ์ธ์ฆ ์—์ด์ „ํŠธ๊ฐ€ ์‹œ์ž‘์‹œ ์•”ํ˜ธ๋กœ ๋ณดํ˜ธ ๋œ ํ‚ค๊ฐ€ ์ž ๊ธˆ ํ•ด์ œ ๋œ ์ƒํƒœ๋กœ ์‹คํ–‰๋˜๊ณ  Git์€ ์ž์ฒด ์†Œ์œ  ๋Œ€์‹  Windows OpenSSH๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋งค๋ฒˆ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅ ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ssh ์—์ด์ „ํŠธ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‹œ์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ๋ช…๋ น ์ค„์—์„œ VS Code๋ฅผ ์‹œ์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

LynnScarlett์ด ์•Œ์•„ ์ฐจ๋ฆฐ๋Œ€๋กœ ํ‚ค์— ๋Œ€ํ•œ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์œผ๋ฉฐ ํ‚ค ์ฒด์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. VSC๊ฐ€์ด ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ• ๊นŒ์š”?

ํ‚ค ์ฒด์ธ์ด ์–ด๋–ป๊ฒŒ ์•ˆ์ „ํ•˜์ง€ ์•Š์€์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” IDE๋Š” ์•”ํ˜ธ ์ž…๋ ฅ์„ ํ—ˆ์šฉํ•˜๋ฏ€๋กœ VSC๋Š” ๋‘ ๊ฐ€์ง€ ์ž…๋ ฅ ๋ฐฉ๋ฒ•์„ ๋ชจ๋‘ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ssh-agent๋ฅผ ์˜๋ฏธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€๋ฅผ ํ˜ผ๋™ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

Ssh-agent๋Š” ์„ธ์…˜ ๋‹น ํ‚ค๋ฅผ๋กœ๋“œํ•œ๋‹ค๋Š” ์ ์—์„œ "์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค". ์†์ƒ๋œ ์‹œ์Šคํ…œ์ด์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ssh-agent ์‚ฌ์šฉ์˜ ๋ถˆ์•ˆ์ •์„ฑ์„ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
http://rabexc.org/posts/pitfalls-of-ssh-agents
๊ฑด๋ฐฐ!

์ด๊ฒƒ๋“ค์€ ๋ชจ๋‘ ์š”์•ฝ๋ฉ๋‹ˆ๋‹ค : ๋ฃจํŠธ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด์žˆ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ์ž์‹ ์˜ ์ปดํ“จํ„ฐ๋ฅผ ์‹ ๋ขฐํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์–ด์จŒ๋“  ๊ทธ๋ ‡๊ฒŒํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ํ•ด๋‹น ๊ธฐ์‚ฌ์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ssh-agent๊ฐ€ ์†์ƒ๋˜๋ฉด ๋” ํฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@whatsyourgithub ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ

VS ์ฝ”๋“œ ๋ฒ„์ „ : ์ฝ”๋“œ 1.27.2 (f46c4c4, 2018-09-12T16 : 17 : 45.060Z)
OS ๋ฒ„์ „ : Windows_NT x64 10.0.17134
์ž์‹ ๋ฒ„์ „ 2.19.0.windows.1

๊ทธ๋ž˜๋„ ์ž‘๋™์ด ์•ˆ๋˜๋Š”.

์ด์ œ 2 ๋…„์ด ์ง€๋‚ฌ์ง€ ๋งŒ ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Atom์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์ ์šฉ๋˜๋ฏ€๋กœ ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ํ•ญ๋ชฉ์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ •๋ง๋กœ ์›ํ•˜๋Š” ๊ฒƒ์€ ์†Œ์Šค ์ œ์–ดํŒ์˜ ์ถ”๊ฐ€ ์ž‘์—… ... git ๋“œ๋กญ ๋‹ค์šด์—์„œ ํ‘ธ์‹œ (์•”ํ˜ธ ํฌํ•จ) ์ž…๋‹ˆ๋‹ค.

ํ‘ธ์‹œ ํ•  ๋•Œ๋งˆ๋‹ค ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋ช…๋ น ์ค„๋กœ ์ด๋™ํ•˜์—ฌ ์›์‹œ git ๋ช…๋ น์„ ์ž…๋ ฅ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด์ œ 2 ๋…„์ด ์ง€๋‚ฌ์ง€ ๋งŒ ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Atom์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์ ์šฉ๋˜๋ฏ€๋กœ ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ํ•ญ๋ชฉ์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ •๋ง๋กœ ์›ํ•˜๋Š” ๊ฒƒ์€ ์†Œ์Šค ์ œ์–ดํŒ์˜ ์ถ”๊ฐ€ ์ž‘์—… ... git ๋“œ๋กญ ๋‹ค์šด์—์„œ ํ‘ธ์‹œ (์•”ํ˜ธ ํฌํ•จ) ์ž…๋‹ˆ๋‹ค.

ํ‘ธ์‹œ ํ•  ๋•Œ๋งˆ๋‹ค ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋ช…๋ น ์ค„๋กœ ์ด๋™ํ•˜์—ฌ ์›์‹œ git ๋ช…๋ น์„ ์ž…๋ ฅ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ssh ๋Œ€์‹  https๋กœ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œ ํ•ด๋ณด์‹ญ์‹œ์˜ค. ๋”ฐ๋ผ์„œ VS Code๊ฐ€ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์•”ํ˜ธ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ Atom์—์„œ VS Code์—์„œ Github Pull Request๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์™”์œผ๋ฉฐ ์ฒซ ๋ฒˆ์งธ ์ƒ๊ฐ์€

์˜ฌ๋ฐ”๋ฅธ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค
์ €์žฅ์†Œ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

git show : index.html
git pull --tags origin master
git show : index.html
[email protected] : ๊ถŒํ•œ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค (๊ณต๊ฐœ ํ‚ค).
์น˜๋ช…์  : ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์˜ฌ๋ฐ”๋ฅธ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค
์ €์žฅ์†Œ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ  ssh ํ‚ค๋งŒ์œผ๋กœ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ๋‚˜์ค‘์— VS ์ฝ”๋“œ์™€ Github Pull Request ํ™•์žฅ์œผ๋กœ ๋Œ์•„์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ง€๊ธˆ๊นŒ์ง€ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ˆ˜ํ–‰ ํ•œ ์ž‘์—…์ด ๋งˆ์Œ์— ๋“ค๋ฉฐ ํ–ฅํ›„ ๋ณด์•ˆ ์„ ํ˜ธ๋„์™€ ํ•จ๊ป˜์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

ssh ๋Œ€์‹  https๋กœ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œ ํ•ด๋ณด์‹ญ์‹œ์˜ค. ๋”ฐ๋ผ์„œ VS Code๊ฐ€ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์•”ํ˜ธ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

๊ณ ๋งˆ์›Œ, ์ €์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Windows ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž ์šฉ Git์„ ์„ค์น˜ํ•˜๊ณ  VS ์ฝ”๋“œ์˜ git bash ์…ธ์— ๋‹ค์Œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ :
git config --global credential.helper manager
๊ทธ๋Ÿฐ ๋‹ค์Œ Gitlab ์‚ฌ์šฉ์ž ID ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ ๋„ ๋™๊ธฐํ™” ๋ฐ ๊ฐ€์ ธ ์˜ค๊ธฐ๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

Gitlab ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ฒฝ๋กœ ๊ธฐ๋ณธ๊ฐ’ ์ธ SSH์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@whatsyourgithub , ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ (๊ธฐ๋ณธ์ ์ด๊ณ  ๋ฒ„๊ทธ๊ฐ€์žˆ๋Š” "๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ†ตํ•ด VSC ์‹คํ–‰"๋ณด๋‹ค ๋‚ซ๊ฒŒ ๋ณด์ž„) VSC ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
Git : ํ•ด๋‹น ID ์—†์Œ : /C/Users/myuser/.ssh/myrsaKey_rsa
ํŒŒ์ผ์ด ์žˆ์ง€๋งŒ.
๊ทธ๋ฆฌ๊ณ  ๋˜ ๋‹ค๋ฅธ ๊ฒƒ์€ ... C : WindowsSystem32OpenSSHssh-add.exe๋ฅผ ์‹œ๋„ํ•˜๋Š” ๋™์•ˆ No such file or directory๋„ ์–ป์Šต๋‹ˆ๋‹ค.
VSCode powershell์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์–ด๋–ค ์•„์ด๋””์–ด?

SSH๊ฐ€ ์•„๋‹Œ https๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ๋ฉ‹์ง€๊ฒŒ ํ”Œ๋ ˆ์ด ํ•  ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กญ๊ฒŒ๋„ Github๋Š” ์‹ค์ œ๋กœ SSH ๋Œ€์‹  https ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

@whatsyourgithub , ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ (๊ธฐ๋ณธ์ ์ด๊ณ  ๋ฒ„๊ทธ๊ฐ€์žˆ๋Š” "๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ†ตํ•ด VSC ์‹คํ–‰"๋ณด๋‹ค ๋‚ซ๊ฒŒ ๋ณด์ž„) VSC ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
Git : ํ•ด๋‹น ID ์—†์Œ : /C/Users/myuser/.ssh/myrsaKey_rsa
ํŒŒ์ผ์ด ์žˆ์ง€๋งŒ.
๊ทธ๋ฆฌ๊ณ  ๋˜ ๋‹ค๋ฅธ ๊ฒƒ์€ ... C : WindowsSystem32OpenSSHssh-add.exe๋ฅผ ์‹œ๋„ํ•˜๋Š” ๋™์•ˆ No such file or directory๋„ ์–ป์Šต๋‹ˆ๋‹ค.
VSCode powershell์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์–ด๋–ค ์•„์ด๋””์–ด?

์ค‘์š”ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๋จผ์ € VS Code ์™ธ๋ถ€์—์„œ Powershell์„ ์—ด์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

OpenSSH๋Š” ์ตœ์‹  ๋ฒ„์ „์˜ Windows 10๊ณผ ํ•จ๊ป˜ ์„ค์น˜๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ํ•ด๋ณด์„ธ์š”.
๊ทธ๋ž˜๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ์„ค์ •> ์•ฑ> ์•ฑ ๋ฐ ๊ธฐ๋Šฅ> ์„ ํƒ์  ๊ธฐ๋Šฅ ๊ด€๋ฆฌ> ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋กœ ์ด๋™ํ•˜์—ฌ OpenSSH๋ฅผ ์ฐพ์œผ์‹ญ์‹œ์˜ค.

@whatsyourgithub , ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ (๊ธฐ๋ณธ์ ์ด๊ณ  ๋ฒ„๊ทธ๊ฐ€์žˆ๋Š” "๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ†ตํ•ด VSC ์‹คํ–‰"๋ณด๋‹ค ๋‚ซ๊ฒŒ ๋ณด์ž„) VSC ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
Git : ํ•ด๋‹น ID ์—†์Œ : /C/Users/myuser/.ssh/myrsaKey_rsa
ํŒŒ์ผ์ด ์žˆ์ง€๋งŒ.
๊ทธ๋ฆฌ๊ณ  ๋˜ ๋‹ค๋ฅธ ๊ฒƒ์€ ... C : WindowsSystem32OpenSSHssh-add.exe๋ฅผ ์‹œ๋„ํ•˜๋Š” ๋™์•ˆ No such file or directory๋„ ์–ป์Šต๋‹ˆ๋‹ค.
VSCode powershell์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์–ด๋–ค ์•„์ด๋””์–ด?

์ค‘์š”ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๋จผ์ € VS Code ์™ธ๋ถ€์—์„œ Powershell์„ ์—ด์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

OpenSSH๋Š” ์ตœ์‹  ๋ฒ„์ „์˜ Windows 10๊ณผ ํ•จ๊ป˜ ์„ค์น˜๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ํ•ด๋ณด์„ธ์š”.
๊ทธ๋ž˜๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ์„ค์ •> ์•ฑ> ์•ฑ ๋ฐ ๊ธฐ๋Šฅ> ์„ ํƒ์  ๊ธฐ๋Šฅ ๊ด€๋ฆฌ> ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋กœ ์ด๋™ํ•˜์—ฌ OpenSSH๋ฅผ ์ฐพ์œผ์‹ญ์‹œ์˜ค.

์•ˆ๋…•ํ•˜์„ธ์š”.
๋‹ต์žฅ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
OpenSSH (ํด๋ผ์ด์–ธํŠธ)๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
standaone powershell์„ ์‚ฌ์šฉํ•˜์—ฌ ์ ˆ์ฐจ๋ฅผ ๋ฐ˜๋ณตํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๊ณ„์† ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
no such identity: /C/Users/<user>/.ssh/RSAPRIVKEY_rsa: No such file or directory
RSAPRIVKEY_rsa์˜ ์†Œ์œ ๊ถŒ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ? powershell์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋‹ค๋ฅธ ์œ„์น˜์—์„œ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค (์–ด์จŒ๋“  ์†Œ์Šค ํŠธ๋ฆฌ ๋˜๋Š” Git GUI์—์„œ ์ž‘๋™ ํ•จ).

@whatsyourgithub , ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ (๊ธฐ๋ณธ์ ์ด๊ณ  ๋ฒ„๊ทธ๊ฐ€์žˆ๋Š” "๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ†ตํ•ด VSC ์‹คํ–‰"๋ณด๋‹ค ๋‚ซ๊ฒŒ ๋ณด์ž„) VSC ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
Git : ํ•ด๋‹น ID ์—†์Œ : /C/Users/myuser/.ssh/myrsaKey_rsa
ํŒŒ์ผ์ด ์žˆ์ง€๋งŒ.
๊ทธ๋ฆฌ๊ณ  ๋˜ ๋‹ค๋ฅธ ๊ฒƒ์€ ... C : WindowsSystem32OpenSSHssh-add.exe๋ฅผ ์‹œ๋„ํ•˜๋Š” ๋™์•ˆ No such file or directory๋„ ์–ป์Šต๋‹ˆ๋‹ค.
VSCode powershell์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์–ด๋–ค ์•„์ด๋””์–ด?

์ค‘์š”ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๋จผ์ € VS Code ์™ธ๋ถ€์—์„œ Powershell์„ ์—ด์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
OpenSSH๋Š” ์ตœ์‹  ๋ฒ„์ „์˜ Windows 10๊ณผ ํ•จ๊ป˜ ์„ค์น˜๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ํ•ด๋ณด์„ธ์š”.
๊ทธ๋ž˜๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ์„ค์ •> ์•ฑ> ์•ฑ ๋ฐ ๊ธฐ๋Šฅ> ์„ ํƒ์  ๊ธฐ๋Šฅ ๊ด€๋ฆฌ> ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋กœ ์ด๋™ํ•˜์—ฌ OpenSSH๋ฅผ ์ฐพ์œผ์‹ญ์‹œ์˜ค.

์•ˆ๋…•ํ•˜์„ธ์š”.
๋‹ต์žฅ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
OpenSSH (ํด๋ผ์ด์–ธํŠธ)๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
standaone powershell์„ ์‚ฌ์šฉํ•˜์—ฌ ์ ˆ์ฐจ๋ฅผ ๋ฐ˜๋ณตํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๊ณ„์† ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
no such identity: /C/Users/<user>/.ssh/RSAPRIVKEY_rsa: No such file or directory
RSAPRIVKEY_rsa์˜ ์†Œ์œ ๊ถŒ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ? powershell์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋‹ค๋ฅธ ์œ„์น˜์—์„œ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค (์–ด์จŒ๋“  ์†Œ์Šค ํŠธ๋ฆฌ ๋˜๋Š” Git GUI์—์„œ ์ž‘๋™ ํ•จ).

ํ™•์ธ. ํ•ด๊ฒฐ .. ./ssh/config ํŒŒ์ผ์— ssh ํ‚ค์˜ C : Users์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค..sshRSAKEY_rsa ๋ฐ ~ / .ssh / RSAKEY_rsa๋กœ ๋ณ€๊ฒฝ
๊ทธ๋Ÿฐ ๋‹ค์Œ ํ‚ค๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.
๊ฐ์‚ฌ

@whatsyourgithub , ๋‹ค์‹œ ๋ฐฉํ•ดํ•ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋™๋ฃŒ๋ฅผ ๋„์šฐ๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ทธ๋Š” ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค (์œ„์—์„œ ์ œ์•ˆํ•œ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ €์—๊ฒŒ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์ง€๋งŒ ๊ทธ๋ฅผ์œ„ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค). ๋‹ค์Œ์€ ์ฆ์ƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋Š” PS ์ฝ˜์†”์—์„œ git fetch๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ gitacora (์ž๋™์œผ๋กœ ๋™๊ธฐํ™”ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ-๋ฌธ์ œ์—†์ด ์‚ฌ์šฉํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘ธ์‹œํ•˜๊ฑฐ๋‚˜ ๋™๊ธฐํ™”ํ•˜๋ฉด ๋‹ค์Œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Permission denied (publickey).
C:\Windows\System32\OpenSSH\ssh-add.exe -L ๊ณต๊ฐœ ํ‚ค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  PS์—์„œ git fetch ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— OpenSSH์— ์˜ํ•ด ํ‚ค๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Œ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฐ€ ์ง„๋‹จ / ์ˆ˜์ •์„ ์–ด๋–ป๊ฒŒ ๋„์šธ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@whatsyourgithub , ๋‹ค์‹œ ๋ฐฉํ•ดํ•ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋™๋ฃŒ๋ฅผ ๋„์šฐ๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ทธ๋Š” ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค (์œ„์—์„œ ์ œ์•ˆํ•œ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ €์—๊ฒŒ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์ง€๋งŒ ๊ทธ๋ฅผ์œ„ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค). ๋‹ค์Œ์€ ์ฆ์ƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋Š” PS ์ฝ˜์†”์—์„œ git fetch๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ gitacora (์ž๋™์œผ๋กœ ๋™๊ธฐํ™”ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ-๋ฌธ์ œ์—†์ด ์‚ฌ์šฉํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘ธ์‹œํ•˜๊ฑฐ๋‚˜ ๋™๊ธฐํ™”ํ•˜๋ฉด ๋‹ค์Œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Permission denied (publickey).
C:\Windows\System32\OpenSSH\ssh-add.exe -L ๊ณต๊ฐœ ํ‚ค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  PS์—์„œ git fetch ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— OpenSSH์— ์˜ํ•ด ํ‚ค๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Œ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฐ€ ์ง„๋‹จ / ์ˆ˜์ •์„ ์–ด๋–ป๊ฒŒ ๋„์šธ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ์˜ ํ‚ค๊ฐ€ ๊ทธ์˜ github ๊ณ„์ •์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๊ทธ์˜ github ๊ณ„์ •์ด ์ €์žฅ์†Œ์˜ ๊ณต๋™ ์ž‘์—…์ž๋กœ ์ถ”๊ฐ€๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ์˜ ํ‚ค๊ฐ€ ๊ทธ์˜ github ๊ณ„์ •์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๊ทธ์˜ github ๊ณ„์ •์ด ์ €์žฅ์†Œ์˜ ๊ณต๋™ ์ž‘์—…์ž๋กœ ์ถ”๊ฐ€๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ €๋Š” bitbucket ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๊ณ  ๊ฑฐ๊ธฐ์— ๊ทธ์˜ pub ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค (์‹ค์ œ๋กœ ๊ทธ๋Š” PowerShell์„ ํ†ตํ•ด ๋ช…๋ น ์ค„์„ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ€์ ธ ์˜ค๊ธฐ ๋ฐ ํ‘ธ์‹œ์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).
์•„๋‹ˆ๋ฉด ๋‹น์‹ ์˜ ๋Œ€๋‹ต์—์„œ ์žกํžˆ์ง€ ์•Š์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ssh-add -K ~/.ssh/id_rsa Mac ํ‚ค ์ฒด์ธ์— ๋‚ด ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ id_rsa ๋ฅผ ํ‚ค๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

macOS High Sierra ๋Œ€ ์ฝ”๋“œ
[email protected] : ๊ถŒํ•œ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค (๊ณต๊ฐœ ํ‚ค).
์น˜๋ช…์  : ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ช…๋ น ์ค„์—์„œ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋”๋ผ๋„ ํ†ตํ•ฉ ๋œ git์ด vscode ๋‚ด์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@whatsyourgithub ์ƒˆ id_rsa๋ฅผ ์ƒ์„ฑ ํ•œ ํ›„ git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe" ๋ฅผ ํ†ตํ•ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ํ•˜์ง€๋งŒ ํ‚ค์—๋Š” ์•”ํ˜ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆŒ๋ €์„ ๋•Œ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅ ํ•  ์ˆ˜์žˆ๋Š” ํ”„๋กฌํ”„ํŠธ ์ฐฝ ๋Œ€ํ™” ์ƒ์ž๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  2. ssh-add .ssh\id_rsa ๋ฅผ ํ†ตํ•ด PC์—์„œ ์ข…๋ฃŒ ๋œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๋ฅผ ์ถ”๊ฐ€ ํ•  ์ˆ˜์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด์ „์— ์ถ”๊ฐ€ ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
Permissions for 'D:/ablob/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "D:/ablob/.ssh/id_rsa": bad permissions
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

์šด์˜์ฒด์ œ : Windows 10
VSC : 1.28

์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ€๊นŒ์šด ์žฅ๋ž˜์— ์ด๊ฒƒ์„ ์ฒ˜๋ฆฌ ํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ๋Œ“๊ธ€์€ MacOS X ๐Ÿ‘ โค๏ธ

VS Code ๋ฌธ์„œ (https://code.visualstudio.com/docs/editor/versioncontrol)์— ๋”ฐ๋ฅด๋ฉด :

VS Code์—์„œ SSH Git ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
์˜ˆ, VS Code๋Š” ์•”ํ˜ธ์—†์ด SSH ํ‚ค๋กœ ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธ๊ฐ€์žˆ๋Š” SSH ํ‚ค๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ SSH ํ™˜๊ฒฝ์„ ์ƒ์†ํ•˜๋ ค๋ฉด Git Bash ํ”„๋กฌํ”„ํŠธ์—์„œ VS Code๋ฅผ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€์˜ ๋‚ ์งœ๋Š” 2018 ๋…„ 12 ์›” 12 ์ผ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ฐฉ๊ธˆ ์•”ํ˜ธ์—†์ด ์ƒˆ ssh ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  (๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ๋น„์›Œ๋‘๊ณ  ์ด์ „ ํ‚ค๋ฅผ ๋ฎ์–ด ์”€) GH์˜ ๋‚ด ๊ณ„์ •์— ์ถ”๊ฐ€ํ•˜๊ณ  ssh-add.exe ~\.ssh\id_rsa ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ssh-agent์— ID๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ด๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ณต์‹ VS Code ๋ฌธ์„œ์— ์ด๋ฏธ git-bash์—์„œ VS Code๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ์•”ํ˜ธ๋กœ๋งŒ ์ž‘๋™ํ•œ๋‹ค๊ณ  ๋ช…์‹œ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ์ด ์ฃผ์ œ๋ฅผ ๋‹ซ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ด๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ณต์‹ VS Code ๋ฌธ์„œ์— ์ด๋ฏธ git-bash์—์„œ VS Code๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ์•”ํ˜ธ๋กœ๋งŒ ์ž‘๋™ํ•œ๋‹ค๊ณ  ๋ช…์‹œ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ์ด ์ฃผ์ œ๋ฅผ ๋‹ซ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„์š”, ๋ฌธ์„œ์—๋Š” "๊ฐ€์žฅ ์‰ฝ๊ฒŒ"๋ผ๊ณ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ‚ค์— ์•”ํ˜ธ๊ฐ€์žˆ์„ ๋•Œ ์ „ํ˜€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Git Bash ํ”„๋กฌํ”„ํŠธ์—์„œ VS Code๋ฅผ ์‹œ์ž‘ํ•˜๋ผ๋Š” ์ œ์•ˆ์€ Git-for-Windows๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ์œ„ํ•œ SSH ์—์ด์ „ํŠธ.

์‹ค์ œ๋กœ Windows์˜ SSH ์—์ด์ „ํŠธ (Windows ์šฉ Git์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ์—์ด์ „ํŠธ๊ฐ€ ์•„๋‹˜)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‚ด (์•”ํ˜ธ๋กœ ๋ณดํ˜ธ ๋œ) SSH ํ‚ค๋ฅผ๋กœ๋“œ ํ•œ ๋‹ค์Œ (ํŠน์ • ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์•„๋‹Œ) ์ •์ƒ์ ์œผ๋กœ VS Code๋ฅผ ์‹œ์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ํ‚ค๊ฐ€ ํ•„์š”ํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์„ฑ๊ณต์ ์œผ๋กœ git push / pull์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

git bash๋ฅผ ํ†ตํ•ด VS ์ฝ”๋“œ๋ฅผ ์—ด๋ฉด ssh ํ‚ค๋ฅผ ๋ฌป๊ณ  VS ์ฝ”๋“œ์—์„œ ํ„ฐ๋ฏธ๋„์—์„œ ssh ์•”ํ˜ธ๋ฅผ ๋ฌป์Šต๋‹ˆ๋‹ค.

ํ„ฐ๋ฏธ๋„์—์„œ ๊ฐ€๋Šฅํ•  ๋•Œ Windows 10์—์„œ VSCode์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๊ฐ€ _ ssh : // repo_ ์—์„œ ๋ฐ€๊ฑฐ๋‚˜ ๋‹น๊ธฐ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

CMDer๋ฅผ git-for-windows์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ VSCode๋Š” ์ด๋Ÿฌํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” git.path๋กœ ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•„์š”ํ•œ ๋ชจ๋“  ์˜ต์…˜๊ณผ ID ํŒŒ์ผ์ด ๊ณต๊ฐœ ํ‚ค ํŒŒ์ผ๋กœ ์„ค์ •๋œ _ % USERPROFILE % \. ssh_ ๋””๋ ‰ํ† ๋ฆฌ์— ssh ๊ตฌ์„ฑ ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. KeeAgent๊ฐ€์žˆ๋Š” KeePass๊ฐ€ ํ‚ค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํ„ฐ๋ฏธ๋„ (CMDer)์„ ๋จผ์ € ์‹คํ–‰ ํ•œ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ด์ „์— ์–ธ๊ธ‰ ํ•œ ์ ˆ์ฐจ๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋‹ค๋ฅธ ์ ‘๊ทผ๋ฒ•์„ (์„ฑ๊ณต์ ์œผ๋กœ) ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
git.exe ๋””๋ ‰ํ† ๋ฆฌ์—์„œ cmd ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

<strong i="10">@echo</strong> off
set SSH_AUTH_SOCK=/path/to/my/sock.file
%~dp0git.exe %1 %2 %3 %4 %5 %6 %7 %8 %9

(SSH_AUTH_SOCK ๊ฒฝ๋กœ์—๋Š” ์Šฌ๋ž˜์‹œ๊ฐ€ ์žˆ์–ด์•ผ ํ•จ) ์ฝ”๋“œ์—์„œ git.path ์˜ต์…˜์„ ๊ฐ€๋ฆฌ ์ผฐ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์ฝ”๋“œ๊ฐ€ ์‹œ์ž‘๋˜๊ณ  ์ถ”๊ฐ€ "ํ•ดํ‚น"์—†์ด _ ~ / .ssh / config_ ํŒŒ์ผ์„ ์ฝ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฉฐ ์—์ด์ „ํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ํ•˜๋‹ค:
SSH_AUTH_SOCK ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ „์—ญ ์ ์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ชจ๋“  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์•ก์„ธ์Šค ํ•  ์ˆ˜์žˆ๋Š” ํ‚ค ๋น„์šฉ์œผ๋กœ ์ธํ•ด ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

"you'll need to launch VS Code from a Git Bash prompt to inherit its SSH environment."

๋‚ด๊ฐ€ Microsoft์—์„œ๋“ค์€ ๊ฒƒ ์ค‘ ๊ฐ€์žฅ ํ‰๋ฒ”ํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ssh๋ฅผ ์ž‘๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํŠน์ • ๋ช…๋ น ์ค„์—์„œ VS Code๋ฅผ ์‹œ์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ ๋กœ๊ทธ? ์ •๋ง?

์ด๋กœ ์ธํ•ด ํ•ฉ๋ฆฌ์ ์œผ๋กœ ์ž˜ ์ž‘๋™ํ•˜๋Š” powershell ๋ฐ posh-git๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ssh-agent๊ฐ€ ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ $profile.CurrentUserAllHosts ์— ์ถ”๊ฐ€ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค (๊ธฐ๋ณธ๊ฐ’์€ C:\Users\USERNAME\Documents\WindowsPowerShell\profile.ps1 ).

Import-Module posh-git
Set-Alias ssh-agent "$env:ProgramFiles\git\usr\bin\ssh-agent.exe"
Set-Alias ssh-add "$env:ProgramFiles\git\usr\bin\ssh-add.exe"
Set-Alias ssh "$env:ProgramFiles\git\usr\bin\ssh.exe"
Start-SshAgent -Quiet

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ด๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ณต์‹ VS Code ๋ฌธ์„œ์— ์ด๋ฏธ git-bash์—์„œ VS Code๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ์•”ํ˜ธ๋กœ๋งŒ ์ž‘๋™ํ•œ๋‹ค๊ณ  ๋ช…์‹œ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ์ด ์ฃผ์ œ๋ฅผ ๋‹ซ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.์ด ๋ฌธ์ œ๋Š” VS Code์—์„œ ์ ์ ˆํ•œ SSH ์•”ํ˜ธ ์ง€์›์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋ฉฐ, ๋ฌธ์„œํ™” ๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹จ์ˆœํžˆ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ฒŒ์œผ๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ข‹์€ ์•”ํ˜ธ ๋ณด์•ˆ์„ ๊ฑด๋„ˆ ๋›ฐ๋ ค๋Š” ์œ ํ˜น์ด ์ด๋ฏธ ๋„ˆ๋ฌด ๋งŽ์œผ๋ฏ€๋กœ ์ตœ์‹  ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์˜ฌ๋ฐ”๋ฅธ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์œ„์—์„œ ์ œ์•ˆํ•œ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐฉ๊ธˆ bash ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ (์˜ˆ : projectName.sh )์„ ๋งŒ๋“ค๊ณ  ๋‹ค์Œ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
"location/to/Code.exe" "location/to/project"

์ด์ œ ํŒŒ์ผ์„ ๋‘ ๋ฒˆ ํด๋ฆญํ•˜์—ฌ VSCode๋ฅผ ์—ด๊ณ  ์•”ํ˜ธ๊ฐ€์žˆ๋Š” ์ธ์ฆ์„œ๋กœ ์ž‘์—…ํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

BTW : ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ์— ์„ค๋ช… ๋œ๋Œ€๋กœ git config --global http.sslBackend schannel ๋„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค .

2 ๋…„์ด ์ง€๋‚œ ํ›„, "์•”ํ˜ธ๊ฐ€์žˆ๋Š” ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ssh๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ git๋กœ ์ž‘์—…"ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ œ๊ฐ€ ์•„์ง ๋ชป์ƒ๊ธด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์‚ฌ์‹ค์— ๋‹นํ™ฉํ•ฉ๋‹ˆ๋‹ค. VSCode๋Š” ํ›Œ๋ฅญํ•œ ํŽธ์ง‘๊ธฐ IMHO์ด์ง€๋งŒ์ด "๊ธฐ๋Šฅ"์ด ์ •๋ง ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค

๋‹ค์Œ์€ ๋„์›€์ด ๋  ์ˆ˜์žˆ๋Š” stackoverflow์— ๋Œ€ํ•œ ์˜ค๋ž˜๋œ ๊ฒŒ์‹œ๋ฌผ์ž…๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ์˜ต์…˜์€ Windows Credential Manger๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. https://stackoverflow.com/questions/35110079/git-bash-pageant-not-using-keys/43313491#43313491

์งˆ๋ฌธ์€ VSCode๊ฐ€ SSH / HTTPS ์ž๊ฒฉ ์ฆ๋ช…์„ ํ‚ค ์ €์žฅ์†Œ ๊ด€๋ฆฌ์ž๋กœ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š”์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ OS, ํƒ€์‚ฌ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์ฒ˜์Œ ๋‘ ์ง€์ ๊ณผ ํ˜ผํ•ฉ๋˜๋Š” git์˜ ์ ์ ˆํ•œ ๊ตฌ์„ฑ์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜์–ด์•ผํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์˜ ์†Œ๋ฆฌ๊ฐ€ ๋งˆ์Œ์— ๋“ค๋ฉด ์ด๋ฏธ Unix์™€ Windows๊ฐ€ VSCode์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ ๋„์ด ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ด github ๊ธฐ์‚ฌ์˜ ๋‚ด์šฉ์ด https://help.github.com/articles/connecting-to-github-with-ssh/์— ๋„์›€์ด๋˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ถ๊ทน์ ์œผ๋กœ ๊ทธ๋“ค์€ windows / ๋‹ค๋ฅธ bash windows ๋Œ€์•ˆ์—์„œ bash๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋งํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์‚ฌ๋žŒ๋“ค์ด ํ•ดํ‚ค ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ๋™์ผํ•œ ๋ฌธ์ œ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

@ctsstc ์˜ˆ, Windows ์šฉ Git Credentials Manager๋ฅผ ์„ค์น˜ํ–ˆ์ง€๋งŒ ์–ด๋–ค ์ด์œ ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด VSCode์— ๋Œ€ํ•œ ์ฑ…์ž„์ด ์•„๋‹ ์ˆ˜ ์žˆ์Œ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Android Studio ๋ฐ IDEA ๊ธฐ๋ฐ˜ IDE์—์„œ๋Š” git ๋ฐ”์ด๋„ˆ๋ฆฌ ๋งŒ ํ˜ธ์ถœํ•˜๋Š” ๋ฐ์—๋งŒ ๊ด€์‹ฌ์ด ์žˆ์œผ๋ฉฐ, ์ž‘์—…์— ์•”ํ˜ธ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์œ ์ผํ•œ ํ†ตํ•ฉ์€ IDE๊ฐ€์ด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  Git์— ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ข‹์€ ์ ‘๊ทผ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด๊ฒƒ์ด ๊ทธ๋“ค์ด ๋†“์นœ ์œ ์ผํ•œ ๊ฒƒ์ž…๋‹ˆ๊นŒ?

@ctsstc ๋งค์šฐ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CLI ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค (์ด ๊ฒฝ์šฐ GIT ๋ฅผ ์˜๋ฏธ ํ•จ)๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ํ”„๋กœ๊ทธ๋žจ์— ์ž…๋ ฅ์ด ํ•„์š”ํ•  ๋•Œ ๋” ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๊ณ  ์ฃผ์žฅ

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ Atom์ด git repos์— ๋Œ€ํ•œ SSH ์•”ํ˜ธ๋ฅผ ๊ธฐ์–ตํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ๋™์ผํ•œ ํŽธ์ง‘ ์—”์ง„์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๋ฏ€๋กœ vscode๊ฐ€ ๋˜‘๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์งˆ๋ฌธ์€ VSCode๊ฐ€ SSH / HTTPS ์ž๊ฒฉ ์ฆ๋ช…์„ ํ‚ค ์ €์žฅ์†Œ ๊ด€๋ฆฌ์ž๋กœ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š”์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๋ฏฟ์ง€ ์•Š์ง€๋งŒ, ๊ทธ๊ฒƒ์ด ์—ฌ๊ธฐ์„œ ์š”๊ตฌ๋˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. @Ivanca๊ฐ€ ์ง€์ ํ–ˆ๋“ฏ์ด VSC๋Š” git ์œ„์— UI๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ๋กœ ์„ ํƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋Š” ํ•ด๋‹น UI๋ฅผ ํ†ตํ•ด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ git ๊ธฐ๋Šฅ์ด ๋…ธ์ถœ๋˜์–ด์•ผ ํ•˜๋Š”๊ฐ€์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ชจํ˜ธํ•œ git ์ž‘์—…์ด VSC๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋ผ๊ณ  ๊ธฐ๋Œ€ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ pull / push๋Š” ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค. VSC๊ฐ€ ๊ธฐ๋ณธ ์•”ํ˜ธ ๋ฌธ์ œ์— UI ์ ‘์ฐฉ์ œ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ ๋Š”์ด๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•œ๋‹ค๊ณ  ์ฃผ์žฅ ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์˜ˆ์ƒ๋˜๋Š” ๊ฒฐ๊ณผ๋Š” ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ฉ๋ฆฌ์ ์ธ ์งˆ๋ฌธ / ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ณด์—ฌ์ฃผ๋Š” ๋Œ€์‹  :

Permission denied, please try again.
Permission denied (publickey,password).

๋ฉฐ์น  ์ „์— Mac์—์„œ ์ตœ๊ทผ์—์ด ๊ธฐ๋Šฅ์„ ๋ณธ ๊ฒƒ ๊ฐ™์ง€๋งŒ Windows์—์„œ ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ ํ‚ค ์ €์žฅ์†Œ์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ ์•”ํ˜ธ๋ฅผ ์š”์ฒญํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘, ๋ฐฉ๊ธˆ Mac์—์„œ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

image

๋”ฐ๋ผ์„œ ์ด๊ฒƒ์ด Mac์—์„œ๋Š” ์ง€์›๋˜์ง€๋งŒ Windows์—์„œ๋Š” ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (์ด ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค). ๋”ฐ๋ผ์„œ ๊ธฐ๋Šฅ์€ ๋‘ OS๊ฐ„์— ํŒจ๋ฆฌํ‹ฐ๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ด ๋ฌธ์ œ๊ฐ€๋ณด๊ณ  ๋œ ์ง€ 2 ๋…„์ด ์ง€๋‚ฌ์ง€ ๋งŒ ์—ฌ์ „ํžˆ VSCode๋ฅผ Git SSH์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
image

๋ˆ„๊ตฌ๋“ ์ง€ Windows์—์„œ ์ด๋“ค ์ค‘ ํ•˜๋‚˜๋ฅผ ์‹œ๋„ ํ–ˆ์Šต๋‹ˆ๊นŒ?

@ctsstc ํ„ฐ๋ฏธ๋„ ํƒญ์—์„œ Mac์—์„œ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€์กฑํ•œ ์ ์€ GUI์—์„œ ํ’€ / ํ‘ธ์‹œ ๊ฐ€์ ธ ์˜ค๊ธฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค. ํ‚ค์— ์•”ํ˜ธ๊ฐ€ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ฌด์‹œํ•˜๊ณ  null / nil ์•”ํ˜ธ๋ฅผ ์ œ์ถœํ•˜์—ฌ git ์ž‘์—…์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

VSC๊ฐ€ ํŒจ์Šค ํ”„๋ ˆ์ด์ฆˆ ์ž๊ฒฉ ์ฆ๋ช…์„ ์บ์‹œํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๋”๋ผ๋„์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•œ๋‹ค๊ณ  ๊ตณ๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. rsa ํ‚ค์— ์•”ํ˜ธ๊ฐ€์žˆ์„ ๋•Œ ์‹คํŒจํ•˜์ง€ ๋ง๊ณ  ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค.

์–ธ์ œ ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚ ๊นŒ์š”?

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋ ๊นŒ์š”? Windows์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ

ํฌ๋ง์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํฌ๊ธฐํ•˜๊ณ  SSH์—์„œ https๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• : ๋ณดํ†ต VSCode์—์„œ ํ„ฐ๋ฏธ๋„์ด ์—ด๋ ค ์žˆ์œผ๋ฏ€๋กœ (npm๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋“ฑ) ๊ฑฐ๊ธฐ์—์„œ git push ๋งŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์€ ์•„๋‹ˆ์ง€๋งŒ ์ ์–ด๋„ ๋‚ด ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

macOS์—์„œ๋Š” ๋งจ ๋์— ์ด๊ฒƒ์„ ~/.ssh/config ์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค (์ค‘์š”ํ•˜๋ฏ€๋กœ ์•„๋ž˜์— ์•„๋ฌด๊ฒƒ๋„ ์ž…๋ ฅํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค).

Host *
   AddKeysToAgent yes
   UseKeychain yes 

๊ทธ๋Ÿฐ ๋‹ค์Œ git pull ํ•˜์—ฌ macOS๊ฐ€ ๋‚ด ssh ์•”ํ˜ธ๋ฅผ ๋ฌป์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„ macOS๋Š” ์•”ํ˜ธ๋ฅผ ๋‹ค์‹œ ๋ฌป์ง€ ์•Š์œผ๋ฏ€๋กœ VSCode์˜ ๋ฒ„์ „ ์ œ์–ด๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๊ฑด๋ฐฐ!

๊ธฐํƒ€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• :

  • git ssh commad๋กœ ssh ๋Œ€์‹  putty์˜ plink๋ฅผ ์‚ฌ์šฉํ•œ ๋‹ค์Œ pageant๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค๋ฅผ๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.
  • ssh ๋Œ€์‹  git ๋Œ€์‹  http / https๋ฅผ ํ†ตํ•ด git ์‚ฌ์šฉ

๋ˆ„๊ตฌ๋“ ์ง€ Windows์—์„œ ์ด๋“ค ์ค‘ ํ•˜๋‚˜๋ฅผ ์‹œ๋„ ํ–ˆ์Šต๋‹ˆ๊นŒ?

https://github.com/PowerShell/openssh-portable

์œ„์™€ ๊ฐ™์ด win32-openssh๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ„ฐ๋ฏธ๋„์—์„œ git์„ ๋ฐ€์–ด์„œ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ธ์‹๋˜๋Š” ssh : // ๊ฒฝ๋กœ์˜ ๋ถ€์กฑ์€ ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ์ด๋ฏธ ์ œ์ถœ ํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋‚ด ์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ssh : //๋ฅผ ํ•ด์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— git ๋ฐ python๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ํ™•์žฅ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” sshfs ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฅผ ์ง€์›ํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋ชจ๋“  ์‚ฌ๋žŒ์„์œ„ํ•œ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋‚ด ์ปดํ“จํ„ฐ์— (์ž ์žฌ์ ์œผ๋กœ) ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ‚ค๋ฅผ ์ž ๊ธˆ ํ•ด์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ๋ช…๋ น ์ค„์˜ git์ด ๋‹จ์ˆœํžˆ ์•”ํ˜ธ๋ฅผ ๋ฌป์Šต๋‹ˆ๋‹ค. VS Code๊ฐ€ ํŒ์—…์—์„œ ๋˜‘๊ฐ™์ดํ•ด์•ผํ•œ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ 2 ๋…„์ด ์ง€๋‚œ ํ›„์—๋Š”์ด ๊ธฐ๋Šฅ์ด ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ๋Š” ์‚ฌ์‹ค์— ์ถฉ๊ฒฉ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ์ด๊ฒƒ์ด ์™œ ์„ ํƒ๋˜์ง€ ์•Š๊ณ  ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ VSC ๋ฒ„์ „ 1.34.0
qwe
๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

Windows 10์—์„œ๋„ ์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. OpenSSH๊ฐ€ Windows 10์— ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Putty๋ฅผ ์ œ๊ฑฐํ–ˆ์ง€๋งŒ VS Code๊ฐ€์ด๋ฅผ ์กด์ค‘ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. VSCode์—์„œ ํ„ฐ๋ฏธ๋„์„ ์ˆ˜๋™์œผ๋กœ ๋ฐ€๊ณ  ๋‹น๊ฒจ์•ผํ•˜๋Š”๋ฐ ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๋™๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.

@ arcs- git์ด SSH ํ‚ค ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ปดํ“จํ„ฐ์— ์•ก์„ธ์Šค ํ•  ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ ์ฑ…์ƒ์—์„œ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ์žˆ์„ ๋•Œ ์ž ๊ธ‰๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด macOS ๋˜๋Š” Windows์—์„œ ssh-agent๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ์—ฌ๊ธฐ์— ์„ค๋ช… ๋œ๋Œ€๋กœ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://help.github.com/en/articles/working-with-ssh-key-passphrases

@ flaw600 ์ด ํ”„๋กœ์„ธ์Šค๋Š” ssh-agent๊ฐ€ ์ดˆ๊ธฐํ™” ๋œ ๋™์ผํ•œ git-bash ์ฐฝ์—์„œ ์ฝ”๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋„์›€์ด๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋Š”

3 ๋…„์ด ๋„˜์—ˆ๊ณ ์ด ๋งํฌ๊ฐ€ ์—ฌ์ „ํžˆ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์‚ฌ์‹ค์€ ๋ถˆํ–‰ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://nathan.alner.net/2015/08/24/vs-code-ide-with-passphrased-git-ssh-keys/

์‹œ์ž‘ ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด code ์„ ์—ด๋ฉด ssh-agent๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ํ’€ / ํ‘ธ์‹œ์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ์ œ์•ˆ? ๋‹ค๋ฅธ ํ”Œ๋žซํผ์— ๋น„ํ•ด ์ง€๊ธˆ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์€ ์ƒ๋‹นํžˆ ํฐ ๊ณ ํ†ต์ž…๋‹ˆ๋‹ค.

https๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ•œ๋™์•ˆ ์šฐ์ˆ˜ํ•œ ์†”๋ฃจ์…˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์•ก์„ธ์Šค๋ฅผ์œ„ํ•œ ํŠน์ • ํ† ํฐ์„ ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ์•ˆ์ „ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. Windows SCM ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ณด๋„ˆ์Šค๋กœ HTTPS๊ฐ€ ์‹ค์ œ๋กœ SSH๋ณด๋‹ค ๋น ๋ฅด๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

@gdamore : HTTPS๊ฐ€ ์žˆ๋‹ค๋Š” ์ฃผ์žฅ์„ ๋’ท๋ฐ›์นจํ•˜๋Š” ๋ชจ๋“  ์ฆ๊ฑฐ ์ฐธ์กฐ
SSH๋ณด๋‹ค ๋น ๋ฅด๋‚˜์š”?

2019 ๋…„ 6 ์›” 17 ์ผ ์›”์š”์ผ 11:45์— gdamore [email protected]์ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

https๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ•œ๋™์•ˆ ์šฐ์ˆ˜ํ•œ ์†”๋ฃจ์…˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์˜ ๋ชจ๋“  ๋น„ํŠธ
์•ก์„ธ์Šค๋ฅผ์œ„ํ•œ ํŠน์ • ํ† ํฐ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.
Windows SCM ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ณด๋„ˆ์Šค๋กœ HTTPS๊ฐ€ ์‹ค์ œ๋กœ SSH๋ณด๋‹ค ๋น ๋ฅด๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

โ€”
๋Œ“๊ธ€์„ ๋‹ฌ์•˜ ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=AFLBAENFUKYEOE3WLKBGCJLP265Q7A5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBWW63LNMVX3761761JIWSZGODMVXHJKTissue ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AFLBAEOC5BVCGGJ7EDXTINTP265Q7ANCNFSM4CSXV3PQ
.

ํŠน๋ณ„ํžˆ git์ด ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์šฉ๋„ (๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์‚ฌ๋ณธ)์—์„œ ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. SSH๊ฐ€ ๋Œ€ํ™” ํ˜• ์‚ฌ์šฉ์— ๋” ์ ํ•ฉํ•œ ๊ฐ’์„ ๊ฐ–๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” TCP ๊ณ„์ธต์— ์„ค์ •๋œ ๊ฒƒ๋“ค๊ณผ ์‹ค์ œ๋กœ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ HTTP๋Š” ์‹ค์ œ๋กœ ํŒŒ์ผ ์ด๋™์— ๋” ์ตœ์ ํ™”๋˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.์ด ๊ฒฝ์šฐ ์‹ค์ œ๋กœ git์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋งํ•˜๋Š” ๊ฒƒ์ด ์‹ซ์ง€๋งŒ ๋งˆ์ˆ ์ฒ˜๋Ÿผ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. Powershell ๋˜๋Š” CMD๋ฅผ ํ†ตํ•ด SSH๋ฅผ ์‹œ์ž‘ํ–ˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์ธ ๋‹ค์Œ ๋งˆ์ˆ ์ฒ˜๋Ÿผ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

Windows์—์„œ๋Š” pageant ๋ฅผ SSH ์—์ด์ „ํŠธ๋กœ ์‚ฌ์šฉํ•œ ๋‹ค์Œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ GIT_SSH ๋ฅผ plink ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‘ ๋„๊ตฌ๋Š” PuTTY์˜ ์ผ๋ถ€์ด๋ฉฐ TortoiseGit๊ณผ ํ•จ๊ป˜ ๋ฒˆ๋“ค๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” Mac์—์„œ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

2019 ๋…„ 7 ์›” 3 ์ผ ์ˆ˜์š”์ผ ์˜ค์ „ 11:44 Justin [email protected] ์ž‘์„ฑ :

Windows์—์„œ๋Š” pageant๋ฅผ SSH ์—์ด์ „ํŠธ๋กœ ์‚ฌ์šฉํ•œ ๋‹ค์Œ env๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
plink์— ๋Œ€ํ•œ ๋ณ€์ˆ˜ GIT_SSH. ์ด ๋‘ ๋„๊ตฌ๋Š” ๋ชจ๋‘ PuTTY์˜ ์ผ๋ถ€์ด๋ฉฐ
TortoiseGit๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

โ€”
๋Œ“๊ธ€์„ ๋‹ฌ์•˜ ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=AFBZHXFVMRQ4DBPV2TLBBGTP5TJN7A5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXW2ZLOWSJKWSVREXG43VMVORQW63LNMVXHWSQWScomment-50
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AFBZHXD63DGD5FUXRJYMLXDP5TJN7ANCNFSM4CSXV3PQ
.

@ Jazun713 mac์€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค : https://github.com/microsoft/vscode/issues/13680#issuecomment -473190878

์™œ ์ด๊ฒƒ์ด ์—ฌ์ „ํžˆ ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?

์™€์šฐ, 3 ๋…„ ํ›„์—๋„ ์—ฌ์ „ํžˆ ssh๋ฅผ ํ†ตํ•ด VS ์ฝ”๋“œ๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ๋ช…๋ น ์ค„์—์„œ ์‹œ์ž‘ํ•˜๋ ค๋ฉด

๊ธ€์Ž„, ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์„ค์ •ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์•”ํ˜ธ๋ฅผ ๋„˜์ง€ ๋ชปํ–ˆ์ง€๋งŒ ์–ด๋–ป๊ฒŒ ๋“  VSCode๊ฐ€ ์ ์–ด๋„ ๋ฃจํŠธ๋กœ ์—ด๋ฆฌ๋ฉด (๋˜๋Š” Windows์—์„œ ๊ด€๋ฆฌ์ž๋กœ) ssh๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Openssh๋ฅผ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ Windows์—์„œ Putty์™€์˜ ์—ฐ๊ฒฐ์„ ์„ค์ • ํ•œ ํ›„์ž…๋‹ˆ๋‹ค. ssh ๊ตฌ์„ฑ์„ ํ™•์ธํ•˜๊ณ  ์„ค์น˜ ํ•œ ํ›„ https://help.github.com/en/articles/testing-your-ssh-connection ์ง€์นจ์— ๋”ฐ๋ผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ๋„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๋ชจ๋“  ๊ฒฝ์šฐ๋Š” ssh ์—์ด์ „ํŠธ์™€ OS๋ฅผ ์„ค์ • ํ•œ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฏ€๋กœ ๋งŽ์€ ์œ ์šฉํ•œ ํ†ต์ฐฐ๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค (I am running Ubuntu 18.04) https://help.github.com/en/articles/ ์˜ค๋ฅ˜ ๊ถŒํ•œ ๊ฑฐ๋ถ€ ๊ณต๊ฐœ ํ‚ค

๋ฒ„์ „ 1.36.1์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ์ „ํžˆ ์•”ํ˜ธ๋กœ SSH๋ฅผ ํ†ตํ•ด Github์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด ํ‚ค์—์„œ ์•”ํ˜ธ๋ฅผ ์ œ๊ฑฐํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ญ๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ค์šด๊ฐ€์š”? HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด git ์‚ฌ์šฉ์ž์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค ... (์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค).

์ด๊ฒƒ์€ ์ผ์ข…์˜ ์„ฑ๊ฐ€์‹  ์ผ์ž…๋‹ˆ๋‹ค. SSH ํ‚ค์™€ ํ•จ๊ป˜ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” 2FA์˜ ํ•œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค (๋‹น์‹ ์ด ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๊ฒƒ : ํ‚ค + ์•Œ๊ณ ์žˆ๋Š” ๊ฒƒ : ์•”ํ˜ธ). MacOS์—์„œ์ด ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ์ž์‹ ์ž‘์—…์„ ์œ„ํ•ด ์ฝ˜์†”๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ์งœ์ฆ๋‚ฉ๋‹ˆ๋‹ค. VS Git UI๋Š” ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

macOS์—์„œ๋Š” ๋งจ ๋์— ์ด๊ฒƒ์„ ~/.ssh/config ์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค (์ค‘์š”ํ•˜๋ฏ€๋กœ ์•„๋ž˜์— ์•„๋ฌด๊ฒƒ๋„ ์ž…๋ ฅํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค).

Host *
   AddKeysToAgent yes
   UseKeychain yes 

๊ทธ๋Ÿฐ ๋‹ค์Œ git pull ํ•˜์—ฌ macOS๊ฐ€ ๋‚ด ssh ์•”ํ˜ธ๋ฅผ ๋ฌป์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„ macOS๋Š” ์•”ํ˜ธ๋ฅผ ๋‹ค์‹œ ๋ฌป์ง€ ์•Š์œผ๋ฏ€๋กœ VSCode์˜ ๋ฒ„์ „ ์ œ์–ด๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๊ฑด๋ฐฐ!

์œ„์˜ ๋‚ด์šฉ์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์—ฌ๊ธฐ์— ๋ฉ”๋ชจ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค : https://code.visualstudio.com/docs/setup/mac

Windows์—์„œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด๋‚˜ ์ ์ ˆํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์–ป๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

"์ ์ ˆํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•"์€ git-scm ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž์™€ ํ•จ๊ป˜ SSH ๋Œ€์‹  HTTPS URL์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ์œ„ํ•ด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

Windows 10 ์šฉ ๋ฉ”์ผ์—์„œ ๋ณด๋ƒ„

๋ณด๋‚ธ ์‚ฌ๋žŒ : Kai Richardson
์ „์†ก : 2019 ๋…„ 8 ์›” 28 ์ผ ์ˆ˜์š”์ผ ์˜ค์ „ 9:33
๋ฐ›๋Š” ์‚ฌ๋žŒ : microsoft / vscode
Cc : gdamore; ์–ธ๊ธ‰ํ•˜๋‹ค
์ œ๋ชฉ : Re : [microsoft / vscode] ๊ฐœ์ธ ํ‚ค ์•”ํ˜ธ๋กœ git ์ง€์› (# 13680)

Windows์—์„œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด๋‚˜ ์ ์ ˆํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์–ป๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

@gdamore ๋Š” ์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ํŠนํžˆ SSH ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๊ธฐ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์€ ๊ด€๋ฆฌ์ž๊ฐ€ ํŠน๋ณ„ํžˆ http (s) Git ์ž‘์—…์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” Git ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ https๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ•˜๋Š” ๊ฒƒ์€ ๊ทธ๋“ค์—๊ฒŒ ํ•ด๊ฒฐ์ฑ…์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@ Kai-Richardson SSH ์—์ด์ „ํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” SSH ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ณ  ํ•ด๋‹น ์—์ด์ „ํŠธ์—์„œ ํ‚ค๋ฅผ ์—ด๋„๋ก Git์„ ๊ตฌ์„ฑํ•˜๋ฉด Windows์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  1. TortoiseGit : ํ™˜๊ฒฝ ๋ณ€์ˆ˜ GIT_SSH ๋ฅผ TortoiseGit ์„ค์น˜ ํด๋”์˜ TortoiseGitPlink.exe ๋กœ ์„ค์ •ํ•˜๊ณ , ํฌํ•จ ๋œ puttygen.exe ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ์ธ ํ‚ค๋ฅผ PPK ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ ํ•œ ๋‹ค์Œ pageant.exe ์—์„œ ๊ฐœ์ธ ํ‚ค๋ฅผ ์—ฝ๋‹ˆ ๋‹ค. GIT_SSH ๋ฅผ plink.exe ํ•˜๊ณ  puttygen / pageant๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. (๊ณต์‹ MS OpenSSH๋ฅผ ์„ค์น˜ ๋งํฌ๋ฅผ ๋‚ด๊ฐ€ ์‚ฌ์šฉ, chocolatey์„ ํ™œ์„ฑํ™” SSH ์—์ด์ „ํŠธ ๊ธฐ๋Šฅ ํฌํ•จ), SSH๋ฅผ ์—์ด์ „ํŠธ ์„œ๋น„์Šค, ์˜คํ”ˆ ๊ฐœ์ธ ํ‚ค๋ฅผ ์‹œ์ž‘ ssh-add <path to key file> , ๊ทธ๋ฆฌ๊ณ  ์„ธํŠธ ENV ๋ณ€์ˆ˜๋ฅผ GIT_SSH ๋ฐ›๋Š” ssh.exe (์ผ๋ฐ˜์ ์œผ๋กœ C:\Program Files\OpenSSH-Win64\ssh.exe ). ์—ฌ๊ธฐ์„œ ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” 8.0 ๋ฆด๋ฆฌ์Šค ์ดํ›„์— ๊ธฐ์กด ( -----BEGIN RSA PRIVATE KEY----- ํ˜•์‹, ๋Œ€์‹  -----BEGIN OPENSSH PRIVATE KEY----- ํ˜•์‹์„ ์„ ํ˜ธ ํ•จ)์œผ๋กœ ๊ฐœ์ธ ํ‚ค๋ฅผ ์ฝ๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚ด Visual Studio ์ฝ”๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋” ์ด์ƒ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ๋‚ด github์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ 1.37.1

OS : Windows 10 Pro : ๋ฒ„์ „ : 10.0.17134 Build 17134

MS ํŒ€์€ SSH๋ฅผ ์‹ซ์–ดํ•ฉ๋‹ˆ๊นŒ?

์‹ค์ œ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜๋Š” IDE๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Jetbrains์˜ ์ œํ’ˆ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์ƒ์œ„ 3 ๊ฐœ ๊ณต๊ธ‰ ์—…์ฒด ์ค‘ 2 ๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Github์ž…๋‹ˆ๋‹ค. Atom ํŽธ์ง‘๊ธฐ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค).

2019 ๋…„ 8 ์›” 29 ์ผ ์˜คํ›„ 8์‹œ 43 ๋ถ„์— Chris Migut [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

Visual Studio ์ฝ”๋“œ๋กœ ์—…๋ฐ์ดํŠธ๋˜์–ด ๋” ์ด์ƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•ด ๋‚ด github์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ 1.37.1

MS ํŒ€์€ SSH๋ฅผ ์‹ซ์–ดํ•ฉ๋‹ˆ๊นŒ?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ง์ ‘์ด ์ด๋ฉ”์ผ์— ํšŒ์‹  ๋ณผ์„ GitHub์˜์— https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA#issuecomment-526421988 , ๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ https://github.com/notifications/์„ unsubscribe-auth / ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ .

๋‚ด๊ฐ€ ์–ด๋–ค ์‹ค์ˆ˜๋ฅผ ํ–ˆ์Šต๋‹ˆ๊นŒ? Kali Linux๋ฅผ Windows์—์„œ ์ด์ค‘ ๋ถ€ํŒ…์œผ๋กœ ๋ถ€ํŒ…ํ•ฉ๋‹ˆ๋‹ค.

  1. ๊ธด ๊ณผ์ •์„ ๊ฑฐ์ณ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜๋˜๊ณ  ์™„๋ฒฝํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์ง€๋งŒ ์–ด๋–ป๊ฒŒ ๋“ 
    git์— ์—ฐ๊ฒฐ๋œ ์žฅ์น˜๊ฐ€ ์—ฐ๊ฒฐ๋˜๊ณ  ํ•จ๊ป˜ ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•˜๊ณ  ์‹œ๋„ ํ•  ๋•Œ
    ๊ฒฝ๋กœ๋ฅผ ์–ป์œผ์‹ญ์‹œ์˜ค. Booommmmm ๋„ˆ๋ฌด ๋งŽ์€ ํŒŒ์ผ์„ ๋‚ด ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ๋กœ ๊ฐ€์ ธ ์˜ค๋Š” ์ค‘ ... What
    ์ด ์ผ์–ด๋‚˜๊ณ ์žˆ๋‹ค ????

PrinceKK301088

2019 ๋…„ 8 ์›” 31 ์ผ ํ† ์š”์ผ ์˜ค์ „ 8:59 flaw600, [email protected] ์ž‘์„ฑ :

์‹ค์ œ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜๋Š” IDE๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Jetbrains์˜ ์ œํ’ˆ์€
๋˜ํ•œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋”ฐ๋ผ์„œ ์ƒ์œ„ 3 ๊ฐœ ๊ณต๊ธ‰ ์—…์ฒด ์ค‘ 2 ๊ฐœ๊ฐ€ SSH๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ์•”ํ˜ธ (๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ-Github-๋‚˜๋Š” ๊ทธ๋“ค์˜
Atom ํŽธ์ง‘๊ธฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค).

2019 ๋…„ 8 ์›” 29 ์ผ ์˜คํ›„ 8:43, Chris Migut [email protected]
์ผ๋‹ค :

Visual Studio ์ฝ”๋“œ๋กœ ์—…๋ฐ์ดํŠธ๋˜์–ด ๋” ์ด์ƒ ๋‚ด github์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด. ๋ฒ„์ „ 1.37.1

MS ํŒ€์€ SSH๋ฅผ ์‹ซ์–ดํ•ฉ๋‹ˆ๊นŒ?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. <
https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFWSVREXG43VMV1988ORPZAZissuement-W2ZLOBW63LNMVXHJ7K#NMVXHJ
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ <
https://github.com/notifications/unsubscribe-auth/ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ
.

โ€”
์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊ตฌ๋…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฉ”์‹œ์ง€๊ฐ€ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=AH4ENDPM4O6N2MT3BFLXGRTQHG66NA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFWSVREXG43VMVORPW63LNMVX635786 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AH4ENDORTBRU3GTGOWJFOVLQHG66NANCNFSM4CSXV3PQ
.

์‹ค์ œ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜๋Š” IDE๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Jetbrains์˜ ์ œํ’ˆ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์ƒ์œ„ 3 ๊ฐœ ๊ณต๊ธ‰ ์—…์ฒด ์ค‘ 2 ๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Github์ž…๋‹ˆ๋‹ค. Atom ํŽธ์ง‘๊ธฐ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค).

๋™์ผํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ค‘๋ณต https://puu.sh/B7qHY/57f3c89f47.png

๋งํฌ๋Š” ํ‚ค๋กœ ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค.

๋‚ด iPhone์—์„œ ๋ณด๋ƒ„

2019 ๋…„ 9 ์›” 16 ์ผ ์˜คํ›„ 1:32์— vitasam [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜๋Š” IDE๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Jetbrains์˜ ์ œํ’ˆ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์ƒ์œ„ 3 ๊ฐœ ๊ณต๊ธ‰ ์—…์ฒด ์ค‘ 2 ๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Github์ž…๋‹ˆ๋‹ค. Atom ํŽธ์ง‘๊ธฐ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค).
โ€ฆ
2019 ๋…„ 8 ์›” 29 ์ผ ์˜คํ›„ 8:43, Chris Migut @. * > ์ž‘์„ฑ : Visual Studio ์ฝ”๋“œ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์œผ๋ฉฐ ๋” ์ด์ƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•ด ๋‚ด github์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ 1.37.1 MS ํŒ€์€ SSH๋ฅผ ์‹ซ์–ดํ•ฉ๋‹ˆ๊นŒ? โ€” ๊ท€ํ•˜๊ฐ€ ๋ฉ˜์…˜ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ”๋กœ์ด ์ด๋ฉ”์ผ์— ํšŒ์‹  GitHub์˜์—์„œ ๋ณผ <# 13680? email_source = ํ†ต์ง€ ๋ฐ email_token = ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA # issuecomment-526421988>, ๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ https://github.com/notifications/unsubscribe-auth/ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQํ•ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ค‘๋ณต ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๋Š” Atom์ด ๊ธฐ๋ณธ์ ์œผ๋กœ SSH ํ‚ค๋ฅผ ์ง€์›ํ•œ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. https://puu.sh/B7qHY/57f3c89f47.png

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ๋งํฌ๋ฅผ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Atom์˜ ๋Œ€ํ™” :
atom_ssh_key_pass

์œ„์˜ ssh ๊ตฌ์„ฑ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ ์™ธ์—

์ฐฝ๋ฌธ์ด๋ผ๋ฉด

Set-Service ssh-agent -StartupType Automatic 

powershell์—์„œ
์ด์ œ vs ์ฝ”๋“œ๊ฐ€ ํ”„๋กฌํ”„ํŠธ๋˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ssh ๊ตฌ์„ฑ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ ์™ธ์—

์ฐฝ๋ฌธ์ด๋ผ๋ฉด

Set-Service ssh-agent -StartupType Automatic 

powershell์—์„œ
์ด์ œ vs ์ฝ”๋“œ๊ฐ€ ํ”„๋กฌํ”„ํŠธ๋˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด ์‹œ๋„์—์„œ ๊ถŒํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์ œ์•ˆ?

Set-Service : ๋‹ค์Œ ์˜ค๋ฅ˜๋กœ ์ธํ•ด 'OpenSSH ์ธ์ฆ ์—์ด์ „ํŠธ (ssh-agent)'์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์•ก์„ธ์Šค๊ฐ€ ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ค„ : 1 char : 1
+ Set-Service ssh-agent -StartupType ์ž๋™
+ ~ ~ ~ ~ ~ ~ ~ ~ ~~~~
+ CategoryInfo : PermissionDenied : (System.ServiceProcess.ServiceController : ServiceController) [Set-Service], ServiceCommandException
+ FullyQualifiedErrorId : couldNotSetService, Microsoft.PowerShell.Commands.SetServiceCommand

์ด ์‹œ๋„์—์„œ ๊ถŒํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์ œ์•ˆ?

@seantma : ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง€๋ ค๋ฉด PowerShell์„ ๊ด€๋ฆฌ์ž๋กœ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ssh ๊ตฌ์„ฑ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ ์™ธ์—
์ฐฝ๋ฌธ์ด๋ผ๋ฉด
Set-Service ssh-agent -StartupType ์ž๋™

powershell์—์„œ
์ด์ œ vs ์ฝ”๋“œ๊ฐ€ ํ”„๋กฌํ”„ํŠธ๋˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ๊ฒฝ์šฐ์—๋Š” ๋„์›€์ด๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋กœ์ปฌ ์ปค๋ฐ‹์„ ์›๋ณธ (์›๊ฒฉ)๊ณผ ๋™๊ธฐํ™”ํ•˜๋ ค๊ณ  ํ•  ๋•Œ VCode๊ฐ€ ๋‹ค์Œ ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

VCode๊ฐ€ ๊ธ€๋กœ๋ฒŒ GIT ๊ตฌ์„ฑ (์ด๋ฆ„ ๋ฐ ์ด๋ฉ”์ผ)์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ๊ณผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค (์•”ํ˜ธ๊ฐ€์žˆ๋Š” ssh ํ‚ค๋กœ ํ…Œ์ŠคํŠธ๋˜์ง€ ์•Š์Œ) :

  • Visual Code ๋‚ด์—์„œ ์ƒˆ ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • VS๋Š” Poweshell๋กœ ํ„ฐ๋ฏธ๋„์„ ์—ฝ๋‹ˆ ๋‹ค.
  • ssh-keygen.exe ์‹คํ–‰-> Enter, enter, enter .....-> ์‚ฌ์šฉ์ž ํด๋”์˜ .ssh ์— ์ƒ์„ฑ ๋œ ํ‚ค (์ผ๋ฐ˜์ ์œผ๋กœ C : Users)
  • ํ‚ค (.ssh / id_rsa.pub)์˜ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•˜๊ณ  Github ์„ค์ •์—์„œ ์ƒˆ ํ‚ค์— ์ถ”๊ฐ€

๊ทธ๊ฒŒ ๋‹ค์•ผ

@ leductan-nguyen, ์ด๊ฒƒ์€ ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ํŠนํžˆ ์•”ํ˜ธ๋กœ ๋ณดํ˜ธ ๋œ ํ‚ค์— ๊ด€ํ•œ ๊ฒƒ์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ํ‚ค๊ฐ€ ์žˆ์–ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์˜ˆ : GitHub ์šฉ ํ‚ค์™€ GitLab ์šฉ ํ‚ค ํ•˜๋‚˜).

์ด๊ฒƒ์— ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@Badbreaddead , ๋ช‡ ๊ฐ€์ง€ ์†”๋ฃจ์…˜ ๋˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์œ„์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ค‘์ธ OS์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

OS X

@ dschu-lab์˜ ์†”๋ฃจ์…˜์„ ๋”ฐ๋ฅด๊ณ  ์ถ”๊ฐ€

Host *
   AddKeysToAgent yes
   UseKeychain yes 

~/.ssh/config ์˜ _ ๋งค์šฐ ๋ _๊นŒ์ง€. ssh ํ‚ค์— ํ‘œ์ค€ ์ด๋ฆ„์ด์—†๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ง€์ ํ•œ๋Œ€๋กœ IdentityFile /path/to/your/ssh/private/key ๋กœ ์ง€์ •ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฒ˜์Œ ์‚ฌ์šฉํ•  ๋•Œ ์•”ํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ์ดํ›„ ์‚ฌ์šฉ์„ ์œ„ํ•ด ํ‚ค ์ฒด์ธ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๋ฆฌ๋ˆ…์Šค

@ Silentz0r ์ด ์œ„์—์„œ ์ง€์ ํ–ˆ๋“ฏ์ด, ์˜ˆ๋ฅผ ๋“ค์–ด sudo apt install keychain ๋ฅผ ํ†ตํ•ด ํ‚ค ์ฒด์ธ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ keychain --eval <ssh-key-name> ๋ฅผ ์‹คํ–‰ํ•˜์ง€๋งŒ keychain <path-to-ssh-key> ๋Š” ๋™์ผํ•œ ํšจ๊ณผ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. .bashrc ๋˜๋Š” ๋™๋“ฑํ•œ ํ•ญ๋ชฉ์— ์ถ”๊ฐ€ํ•˜๋ฉด ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œˆ๋„์šฐ

@geordanr ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ์œ ์ผํ•œ

$ eval `ssh-agent`
$ ssh-add /path/to/key
$ code

๋งค๋ฒˆ ์ฒ˜์Œ ๋‘ ๋ช…๋ น์„ ์ž…๋ ฅํ•ด์•ผํ•˜๋Š” ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

#use fix path for SSH_AUTH_SOCK so it works more then one instance of gitbash
export SSH_AUTH_SOCK="$TEMP/ssh_agent_socket"

ps | grep ssh-agent > /dev/null
RUNNING=$?;

if [ "$RUNNING" -eq "1" ] 
then
# ssh-agent is not yet running
    eval `ssh-agent -a $SSH_AUTH_SOCK`
fi
ssh-add 

Git Bash์˜ ~/.bashrc ํŒŒ์ผ์— ssh-agent๋ฅผ ์ž๋™์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค ( ์—ฌ๊ธฐ ์—์„œ ๊ฐ€์ ธ ์™€์„œ ์•ฝ๊ฐ„ ์กฐ์ • ๋จ). ํ‚ค์— ํ‘œ์ค€ ์ด๋ฆ„์ด์—†๋Š” ๊ฒฝ์šฐ ssh-add ๋’ค์— ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค (์˜ˆ : ssh-add ~/.ssh/id_rsa_personal_key .

์‹ค์ œ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜๋Š” IDE๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Jetbrains์˜ ์ œํ’ˆ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์ƒ์œ„ 3 ๊ฐœ ๊ณต๊ธ‰ ์—…์ฒด ์ค‘ 2 ๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Github์ž…๋‹ˆ๋‹ค. Atom ํŽธ์ง‘๊ธฐ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ SSH ์•”ํ˜ธ๋ฅผ ์ง€์›ํ•˜๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค).
โ€ฆ
2019 ๋…„ 8 ์›” 29 ์ผ ์˜คํ›„ 8:43, Chris Migut @ . * > ์ž‘์„ฑ : Visual Studio ์ฝ”๋“œ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์œผ๋ฉฐ ๋” ์ด์ƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•ด ๋‚ด github์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ 1.37.1 MS ํŒ€์€ SSH๋ฅผ ์‹ซ์–ดํ•ฉ๋‹ˆ๊นŒ? โ€” ๊ท€ํ•˜๊ฐ€ ๋ฉ˜์…˜ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ”๋กœ์ด ์ด๋ฉ”์ผ์— ํšŒ์‹  GitHub์˜์—์„œ ๋ณผ <# 13680? email_source = ํ†ต์ง€ ๋ฐ email_token = ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA # issuecomment-526421988>, ๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ https://github.com/notifications/unsubscribe-auth/ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ์„ .

PyCharm์€ ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ์—†์ด ๋‚ด ssh ํ‚ค๋ฅผ ์•”ํ˜ธ๋กœ ์ง€์›ํ•˜๋ฉฐ, ์•”ํ˜ธ๋ฅผ ํ•œ ๋ฒˆ๋งŒ ๋ฌป๊ณ  ๋‹ค์‹œ๋Š” ์š”์ฒญํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋ชจ๋“  git ๊ธฐ๋Šฅ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

Git Bash์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์—์ด์ „ํŠธ์— ssh ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋™์ผํ•œ ์„ธ์…˜์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

$ ํ‰๊ฐ€ ssh-agent
$ ssh-add / path / to / key
$ ์ฝ”๋“œ

๊ทธ๋งŒํ•œ ๊ฐ€์น˜๋Š” Linux์—์„œ๋„ ์ž‘๋™ํ•˜๋ฉฐ ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด code ์„ ์‹œ์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๊ฐ€๊ธฐ๋„ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„ ์ž์ฒด๋Š” ์ด๋Ÿฌํ•œ ๋ช…๋ น ์งํ›„์— ๋‹ซํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ์–ด๋„ ๋‹ค๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ssh-askpass ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค (Arch Linux์—์„œ๋Š” x11-ssh-askpass ์™€ seahorse ํŒจํ‚ค์ง€์—์„œ ์ œ๊ณต๋˜๋ฉฐ ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ๊ฐ๊ฐ /usr/lib/ssh/ssh-askpass ๋ฐ /usr/lib/seahorse/ssh-askpass ์žˆ์Šต๋‹ˆ๋‹ค). ์ด ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค. VS Code๋Š” ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์•”ํ˜ธ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‚ค๋ฅผ ํ™˜๊ฒฝ์— ์ถ”๊ฐ€ํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

๋‚˜๋Š” ์ด๊ฒƒ์ด 2020 ๋…„ 1 ์›” ์ด์ •ํ‘œ๋ผ๊ณ  ๋งน์„ธ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๐Ÿ˜•

์ด https://github.com/microsoft/vscode/issues/13680#issuecomment -559013132์— ์ถ”๊ฐ€

bash๋Š” ๋ชจ๋“  ๋กœ๊ทธ์ธ์—์„œ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋ฏ€๋กœ bash๋ฅผ ํ†ตํ•ด ๋ฐ”๋กœ ๊ฐ€๊ธฐ์—์„œ ์‹คํ–‰์ค‘์ธ VSCode๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ด์ฝ˜์˜ ๊ฒฝ์šฐ % LOCALAPPDATA % ProgramsMicrosoft VS CodeCode.exe ์•„๋ž˜์—์žˆ๋Š” VSCode์™€ ํ•จ๊ป˜ ์ œ๊ณต๋œ ์•„์ด์ฝ˜์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

ssh-agent๊ฐ€ ์ด๋ฏธ ์‹คํ–‰์ค‘์ธ ๊ฒฝ์šฐ ์ฝ”๋“œ๊ฐ€ ์ฆ‰์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅ ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

image

์ด ์ผ์„ ๋•๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. VSCode๊ฐ€ ํ•ด์ฃผ ์—ˆ์œผ๋ฉดํ•˜๋Š” ๋ช‡ ์•ˆ๋˜๋Š” ์ผ ์ค‘ ํ•˜๋‚˜์ง€๋งŒ, ๊ทธ๊ฒƒ ์—†์ด๋„ ์ƒ๊ด€ ์—†์–ด์š”. ์ €๋Š” ์—ฌ์ „ํžˆ VSCode ์‚ฌ์šฉ์„ ์ •๋ง ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

Git-for-Windows๋Š” start-ssh-agent ๋ผ๋Š” ์Šคํฌ๋ฆฝํŠธ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ Git-for-Windows์˜ ํ‘œ์ค€ ์„ค์น˜์—์„œ ์‚ฌ์šฉ์ž ๊ฒฝ๋กœ์— ์ถ”๊ฐ€๋˜๋Š”

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋ฐ€๊ธฐ / ๋Œ๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญ ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ผ๋ จ์˜ ์ด๋ฒคํŠธ๋ฅผ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ vscode ํ„ฐ๋ฏธ๋„์ด๋‚˜ ํŒ์—…์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ถ”๊ฐ€ ๋œ ํ”Œ๋Ÿฌ์Šค๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ ssh-agent๋ฅผ ์‹œ์ž‘ํ•œ ๊ฒฝ์šฐ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ์ด๋ฅผ ์ฐพ๊ณ  ๊ธฐ์กด ์—์ด์ „ํŠธ ๋งŒ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์•”ํ˜ธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ!

https://github.com/microsoft/vscode/issues/13680#issuecomment -525861890๋„ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ๋งค์šฐ ๊ฐ„๋‹จํ•˜์ง€ ์•Š์œผ๋ฉฐ Windows git ๋ฐ bash ์šฉ Git๋„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ƒํ™ฉ์ด ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค.

๋ฌธ์ œ์— ๋Œ€ํ•ด ์ฐพ์€ ๋‚ด์šฉ๊ณผ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…์— ๋Œ€ํ•œ ์š”์•ฝ

Windows + Windows ์šฉ Git (GfW) + VSCode + SSH git repo์˜ ์ฃผ์š” ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ด์ „์— Windows ๋˜๋Š” GfW ssh-agent๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ (๋˜๋Š”์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„์šฐ๋ฏธ / ์„œ๋น„์Šค๊ฐ€์—†๋Š” ๊ฒฝ์šฐ) ssh-agent ๋ฐ ssh-add๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. VSCode์˜ ์ฑ…์ž„์ด ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ssh๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฑฐ๋‚˜ ๋ฉ”์‹œ์ง€๋ฅผ๋ฐ›๋Š” ๊ฒƒ์€ ์ข‹์Šต๋‹ˆ๋‹ค.
  • .bashrc๋ฅผ ํ†ตํ•ด GfW ssh-agent๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์‹œ์ž‘ ๋ฉ”๋‰ด / ๋ฐ”๋กœ ๊ฐ€๊ธฐ์—์„œ VSCode๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๋™์ผํ•œ ์„ธ์…˜์ด ์•„๋‹Œ ๊ฒฝ์šฐ (์˜ˆ code cli์—์„œ

    • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• GfW git ๋ฐ ssh ๋„๊ตฌ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋™์ผํ•œ ์„ธ์…˜ https://github.com/microsoft/vscode/issues/13680#issuecomment -559013132๋ฅผ ํ†ตํ•ด VSCode๋ฅผ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ https : / ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ”๋กœ ๊ฐ€๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค

  • Windows ๋ฒ„์ „์˜ ssh-agent๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  GfW๊ฐ€ ์„ค์น˜๋œ ๊ฒฝ์šฐ GfW git์€ ์ž์ฒด ๋ฒ„์ „์˜ ssh ๋„๊ตฌ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ์ ์œผ๋กœ Windows ๋ฒ„์ „์˜ ssh-agent๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. VSCode๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ GfW git์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฏ€๋กœ Windows ssh-agent๊ฐ€ ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ž„์„ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•˜๊ณ  (์ถ”๊ฐ€ ๋œ ํ‚ค ํฌํ•จ)์ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์†”๋ฃจ์…˜ 2๋Š” ์ข‹์ง€๋งŒ ๋งค์šฐ ๊ฐ„๋‹จํ•˜์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ทจํ•œ ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์„ ํƒ์  ๊ธฐ๋Šฅ์—์„œ OpenSSH ํด๋ผ์ด์–ธํŠธ ์„ค์น˜
  2. OpenSSH ํด๋ผ์ด์–ธํŠธ ๋„๊ตฌ (์˜ˆ : C : WindowsSystem32OpenSSHssh.exe)๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— GIT_SSH๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  3. ์„œ๋น„์Šค์—์„œ Open SSH ์—์ด์ „ํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค (๋น„ํ™œ์„ฑํ™” ๋œ ๊ฒฝ์šฐ ๋‚ด ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค).
  4. PowerShell์—์„œ ssh-add ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ‚ค๊ฐ€ ์ถ”๊ฐ€ ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. VSCode๋Š” ์ด์ œ SSH ์ €์žฅ์†Œ๋กœ git ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. ๊ทธ๋Ÿฌ๋‚˜ GfW git ๋ฐ bash๋Š”์ด ์—์ด์ „ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (bash env GIT_SSH๊ฐ€ Windows OpenSSH ๋„๊ตฌ๋ฅผ ๊ฐ€๋ฆฌ ํ‚ค๋„๋ก ์‹œ๋„ํ–ˆ์ง€๋งŒ ํ•จ๊ป˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ). .bashrc ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—์ด์ „ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. GfW bash๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ๋˜ ๋‹ค๋ฅธ ์‹œ๊ฐ„.

์ง€๊ธˆ์€ Mac๊ณผ Linux ์‹œ์Šคํ…œ๋„ ์‚ฌ์šฉํ•˜๊ณ  ๋ชจ๋“  ๊ณณ์—์„œ ๋™์ผํ•œ bash / git / ssh ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๊ธฐ ๋•Œ๋ฌธ์— ์†”๋ฃจ์…˜ 1์„ ๊ณ ์ˆ˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

cmd ํด๋”์— start-ssh-agent.cmd ๋ผ๋Š” Git-for-Windows ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์—ฐ๊ฒฐํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๊ฐ€๊ธฐ์— Code.exe ๋ฅผ %COMSPEC% /C %LOCALAPPDATA%\Programs\Git\cmd\start-ssh-agent.cmd && "%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe" ๋กœ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ์ž‘๋™ํ•˜์ง€๋งŒ์ด ์ด์ƒํ•œ๋ฉด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒ ํ•œ ํ›„ VSCode์˜ ๋‘ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค๋ฅผ ์—ฌ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์ง€๋งŒ ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

Windows ํ„ฐ๋ฏธ๋„์—์„œ์ด ์ค„์„ ์‹คํ–‰ํ•˜๋ฉด ( %COMSPEC% /C ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ) ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ์‹œ๋„๋Š” ๋ฐ”๋กœ ๊ฐ€๊ธฐ์™€ ๋™์ผํ•œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ *.bat ๋˜๋Š” *.cmd ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์—ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์— ๋†€๋ž์Šต๋‹ˆ๋‹ค. VSCode๊ฐ€ ์‹œ์ž‘๋˜์ง€๋งŒ ๋Œ์–ด ์˜ค๊ธฐ / ๋ฐ€๊ธฐ ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋‘๋ ค์šด "๊ถŒํ•œ ๊ฑฐ๋ถ€ (๊ณต๊ฐœ ํ‚ค)"๋กœ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜.

๋˜ํ•œ Git ํ™•์žฅ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ์ง€ ๋งŒ ssh-start-agent ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž… ํ•  ์œ„์น˜๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” Git ๋ฒ„์ „์„ ์ฐพ๊ณ  Windows์—์„œ 61-148 ํ–‰๊ณผ ๊ฐ™์ด ์ฐพ์„ ๋•Œ์ž…๋‹ˆ๋‹ค. git --version ๋ฅผ ์‹คํ–‰ํ•˜๋ฏ€๋กœ cp.exec('start-ssh-agent.cmd') ๋„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์•”ํ˜ธ๋ฅผ ์–ป์„ ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ๋‚ด๊ฐ€ ๋ฌด์—‡์— ์ •์ฐฉํ•˜๋Š” ๊ฒƒ์€ ๋ณต์‚ฌํ–ˆ๋‹ค start-ssh-agent.cmd ์ƒˆ ํŒŒ์ผ๋กœ ๋ถˆ๋ฆฌ๋Š” vscode-ssh-agent.cmd ํ•˜๊ณ  ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ ๋งˆ์ง€๋ง‰ ์ค„์„ ๊ต์ฒดํ•˜๋Š” CMD ๊ฐ€์ง„ <strong i="25">@call</strong> "%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe" . ํ•˜์ง€๋งŒ ์ž‘์—… ํ‘œ์‹œ ์ค„์— ๊ณ ์ • ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ์ง„ํ–‰์ค‘์ธ ์ž‘์—…์ด์ง€๋งŒ ๊ณง ํ™๋ณด๊ฐ€ ๊ฐ€๋Šฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ ssh-agent๋ฅผ ์‹œ์ž‘ํ•˜๊ณ , git.sshPrivateKeyPath๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์š”์ฒญ ๋œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ SSH ํ‚ค ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋„๋ก ํ”„๋กฌํ”„ํŠธํ•˜๊ณ , ๋ชจ๋“  git ํ˜ธ์ถœ์— ๋Œ€ํ•ด ์—์ด์ „ํŠธ์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Windows ์ปดํ“จํ„ฐ์—์„œ ์ฒซ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์žˆ๋Š” ๋ชจ๋“  ๋Œ“๊ธ€์„ ์ฝ์—ˆ์ง€๋งŒ ์žŠ์€ ๊ฒƒ์ด์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์–ธ์ œ๋“ ์ง€ ๋ง์”€ํ•ด์ฃผ์‹ญ์‹œ์˜ค.

@weiliddat์—์„œ https://github.com/microsoft/vscode/issues/13680#issuecomment -583599355์— ์ถ”๊ฐ€; ๋‚˜๋Š” ์ž์ฃผ "VSCode๋กœ ์—ด๊ธฐ"์ปจํ…์ŠคํŠธ ๋ฉ”๋‰ด (ํด๋”๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญ) ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜๊ณ  ContextEdit ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VSCode๋กœ ํด๋”๋ฅผ ์—ด ๋•Œ ์ปจํ…์ŠคํŠธ ๋ฉ”๋‰ด ํ•ญ๋ชฉ์„ ํŽธ์ง‘ํ•˜์—ฌ Git Bash๋ฅผ ํ†ตํ•ด ์‹œ์ž‘ํ•˜๋ฏ€๋กœ VSCode๋Š” SSH ์ปจํ…์ŠคํŠธ์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ContextEdit๋ฅผ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.
  2. ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ContextEdit ์‹คํ–‰
  3. ๊ธด ํ™•์žฅ์ž ๋ชฉ๋ก์—์„œ "ํŒŒ์ผ ํด๋”"๋ฅผ ์ฐพ์œผ์‹ญ์‹œ์˜ค.
    image
  4. "์…ธ ๋ช…๋ น"์—์„œ "์ฝ”๋“œ๋กœ ์—ด๊ธฐ"ํ•ญ๋ชฉ์„ ๋‘ ๋ฒˆ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  5. "๋ช…๋ น ์ค„"๋ฌธ์ž์—ด์„ "C:\Program Files\Git\bin\bash.exe" -l -c "code '%V';exit" ํ•ฉ๋‹ˆ๋‹ค. "C:\Program Files\Git\" ๊ฐ€ Windows ์šฉ Git ์„ค์น˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ํ•ด๋‹นํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์žฌ์„ค์ •ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ์ด์ „ ๋ช…๋ น์„ ๋ณต์‚ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. "ํ™•์ธ"๋ฐ "์ข…๋ฃŒ"๋ฅผ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค.

์ด์ œ "VSCode๋กœ ์—ด๊ธฐ"ํด๋”๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜๋ฉด ๋จผ์ € Git Bash๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๋‚˜์ค‘์— ์˜ค๋ฅธ์ชฝ ํด๋”์—์„œ VSCode๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค. Git Bash๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— SSH ์—์ด์ „ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋„๋ก Git Bash๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ • ํ•œ ๊ฒฝ์šฐ ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ ๋งˆ๋‹ค ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ดํ›„์— ์—ด๋ฉด VSCode๊ฐ€ ์ง์ ‘ ์—ด๋ฆฌ๊ณ  SSH ํ‚ค๊ฐ€ ๋ชจ๋‘ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

ํด๋” ์ž์ฒด๋ฅผ ์ง์ ‘ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜๋Š” ๋Œ€์‹  ํƒ์ƒ‰๊ธฐ์—์„œ ํด๋” ๋‚ด๋ถ€๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜๋ฉด ContextEdit ํ•ญ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์†”๋ฃจ์…˜ ์€ ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‚ค๋ฅผ ํ™˜๊ฒฝ์— ์ถ”๊ฐ€ํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

๋‹ค์Œ ํ‚ค๋ฅผ ํ™˜๊ฒฝ์— ์ถ”๊ฐ€ํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

https://github.com/microsoft/vscode/issues/13680#issuecomment -575204695
์ด๊ฒƒ์€ ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค! ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ์„น์…˜์„ ํ™•์ธ GitBash ๋“ฑ์—์„œ VSCode ๋ฅผ ์‹œ์ž‘ํ•ด์•ผํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ GitBash ์—์„œ ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๋ฅผ ํ™•์ธํ–ˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
.

์˜ˆ๋ฅผ ๋“ค์–ด GitBash ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งค๋ฒˆ VSCode GitBash ๋ฅผ ์‹œ์ž‘ํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ( ์ด ๋ง๋„ ์•ˆ๋ผ! IMHO ), Environment Variables ์ฐฝ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. rundll32.exe sysdm.cpl,EditEnvironmentVariables (์ฆ‰, cmd.exe๋ฅผ ํ†ตํ•ด).

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋‹ค์‹œ ์‹œ์ž‘ (๋‹ค์‹œ๋กœ๋“œํ•˜์ง€ ์•Š์Œ) VSCode ํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

DISPLAY=WTHeck ํ•˜๋”๋ผ๋„ ์ž‘๋™ํ•œ๋‹ค๋Š” ์žฌ๋ฏธ์žˆ๋Š” ์ ์ด ์žˆ์œผ๋ฏ€๋กœ์ด ๋ณ€์ˆ˜์˜ ์กด์žฌ ๋งŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ( private key file path ๋˜๋Š” SSH_ASKPASS )๋ฅผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์–ด๋”˜๊ฐ€์— JSON ๊ตฌ์„ฑ ๊ฐ’์œผ๋กœ ์ •์˜ํ•˜๋ฉด VSCode ๊ฐ€ ์‹œ์ž‘ํ•  ๋•Œ ๋‹ค์Œ ํ•ญ๋ชฉ์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜?

์ „์ž ๋˜๋Š” Windows ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ๋Š” ์ž˜ ๋ชจ๋ฅด์ง€๋งŒ์ด ์†”๋ฃจ์…˜์„ ๋‘˜๋Ÿฌ์‹ผ ๋ž˜ํผ๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ VSCode๋ฅผ ์„ค์น˜ํ•  ๋•Œ ์ด๋Ÿฌํ•œ ์„ค์ •์„ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

TBH ๋‚˜์—๊ฒŒ ์ด๊ฒƒ์€ ์ด๊ฒƒ์ด ํ•ด๊ฒฐํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š์ง€๋งŒ์ด ํ† ๋ก ์ด 4 ๋…„ ๋™์•ˆ ๊ณ„์†๋˜๋Š” ๋ฐฉ์‹์„ ๊ณ ๋ คํ•˜๋ฉด ์•„๋งˆ๋„ ๋ฌธ์ œ์˜ ์ง์Šน ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. VSCode๊ฐ€ ์ ์–ด๋„ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ ๋„์ด ํ‘œ์ค€์ ์ธ git ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ๊ฒƒ์€ ๋ฉ‹์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ์š”์ ์ด ์žˆ์ง€๋งŒ.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด soufiene-slimi์—๊ฒŒ ๊ฐ์‚ฌํ•˜๊ณ  ์„ค๋ช…์— ๋Œ€ํ•ด F8ER์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. UI ๋ถˆ์ผ์น˜๊ฐ€ ์žˆ์ง€๋งŒ ์ ์–ด๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‚ค๋ฅผ ํ™˜๊ฒฝ์— ์ถ”๊ฐ€ํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

์—ฌ๊ธฐ์— ์ƒˆ๋กœ์šด ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฐฉ๊ธˆ WSL 2 ๋ฐ Git์—์„œ VSCode ์ž‘์—…์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  VSCode๋Š” ๋‚ด๊ฐ€ ๋ฌด์–ธ๊ฐ€๋ฅผ ํ‘ธ์‹œํ•˜๊ฑฐ๋‚˜ ๊ฒŒ์‹œํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ„ฐ๋ฏธ๋„์—์„œ ์‹œ๋„ํ•ด ๋ณด์•˜๊ณ  ๋‚ด ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅ ํ•  ์ˆ˜ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ›Œ๋ฅญํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ๊ณ  ๋งŽ์€ ์˜๊ฒฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ํ‚ค์—์„œ ์•”ํ˜ธ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ๊ตฌ์„ฑ์˜ ์–ด๋”˜๊ฐ€์— ํ‚ค๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์–ด๋”˜๊ฐ€์— ์ข‹์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–˜๋“ค ์•„,

Mac์—์„œ๋„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
RSA ํ‚ค๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๊ณ  ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

# GitLab.com
Host gitlab.com
  Preferredauthentications publickey
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๋ณธ์œผ๋กœ ํ‘ธ์‹œ ํ•  ๋•Œ VS ์ฝ”๋“œ ํ„ฐ๋ฏธ๋„์—์„œ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์ฝ”๋“œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค.
VScode GUI ํ’€ / ํ‘ธ์‹œ / ๋™๊ธฐํ™”๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Please make sure you have the correct access rights
and the repository exists.
> git push -u origin v1.5_Testing
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

์œ ์ผํ•œ ์ฐจ์ด์ ์€ GUI๊ฐ€ ์•”ํ˜ธ๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์‹คํŒจํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

[email protected] : ๊ถŒํ•œ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค (๊ณต๊ฐœ ํ‚ค).
...
์œ ์ผํ•œ ์ฐจ์ด์ ์€ GUI๊ฐ€ ์•”ํ˜ธ๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์‹คํŒจํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

@mohammedpatla ์ œ๋ฐœ, ์ด๊ฒƒ์„ ํ™•์ธ ํ•˜์‹ญ์‹œ์˜ค .

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€์žˆ๋Š” ์†”๋ฃจ์…˜์€ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Windows์—๋Š” git์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ WSL2์—์„œ ์‹คํ–‰๋˜๋Š” Ubuntu 20.04์—๋Š” ์žˆ์Šต๋‹ˆ๋‹ค. mingw64 ๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๋‚˜ git-gui--askpass ๋ผ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ์–ด๋””์—๋„ ์—†์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์†”๋ฃจ์…˜์ด Mac์—์„œ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. @ F8ER .

Mac @ F8ER ์—์„œ git-bash๋ฅผ ํ†ตํ•ด VScode๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€์žˆ๋Š” ์†”๋ฃจ์…˜์€ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Windows์—๋Š” git์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ WSL2์—์„œ ์‹คํ–‰๋˜๋Š” Ubuntu 20.04์—๋Š” ์žˆ์Šต๋‹ˆ๋‹ค. mingw64 ๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๋‚˜ git-gui--askpass ๋ผ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ์–ด๋””์—๋„ ์—†์Šต๋‹ˆ๋‹ค.

Mac์—์„œ git-bash๋ฅผ ํ†ตํ•ด VScode๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Environment Variable ์ด ๋ฌด์—‡์ธ์ง€ ์•„์‹ญ๋‹ˆ๊นŒ?
@NicolasGoeddel ubuntu.com ์—์„œ์ด ๋งํฌ ๋ฅผ ํ™•์ธ
@mohammedpatla ๋Œ€์‹  apple.com ์—์„œ์ด

๋˜ํ•œ. ๋จผ์ € Google์„ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด git-gui--askpass ๊ฐ€ ์—†์œผ๋ฉด git-gui ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ์ด๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€์žˆ๋Š” ์†”๋ฃจ์…˜์€ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Windows์—๋Š” git์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ WSL2์—์„œ ์‹คํ–‰๋˜๋Š” Ubuntu 20.04์—๋Š” ์žˆ์Šต๋‹ˆ๋‹ค. mingw64 ๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๋‚˜ git-gui--askpass ๋ผ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ์–ด๋””์—๋„ ์—†์Šต๋‹ˆ๋‹ค.

Mac์—์„œ git-bash๋ฅผ ํ†ตํ•ด VScode๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Environment Variable ์ด ๋ฌด์—‡์ธ์ง€ ์•„์‹ญ๋‹ˆ๊นŒ?
@NicolasGoeddel ubuntu.com ์—์„œ์ด ๋งํฌ ๋ฅผ ํ™•์ธ
@mohammedpatla ๋Œ€์‹  apple.com ์—์„œ์ด

๋˜ํ•œ. ๋จผ์ € Google์„ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด git-gui--askpas ๊ฐ€ ์—†์œผ๋ฉด git-gui ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์•˜ ์Œ์„ ์˜๋ฏธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ GUI๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋Š”๋ฐ WSL2์—์„œ ์‹คํ–‰๋˜๋Š” Linux ์ปดํ“จํ„ฐ์— GUI ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•ด์•ผํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํ—ค๋“œ๋ฆฌ์Šค ๋จธ์‹ ์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ๋‚ด ๊ฒŒ์‹œ๋ฌผ์„ ๋” ์ž์„ธํžˆ ์ฝ์–ด์ฃผ์„ธ์š”.

๊ทธ git-gui ํŠธ๋ฆญ์€ ๋‚ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ VSCode์™€ ์ €์žฅ์†Œ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ Mac์—์„œ ์ž‘๋™ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ @mohammedpatla ๋Š” ์‹œ์Šคํ…œ์— git-gui ๋งŒ ์„ค์น˜ํ•˜๊ณ  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ GUI๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋Š”๋ฐ WSL2์—์„œ ์‹คํ–‰๋˜๋Š” Linux ์ปดํ“จํ„ฐ์— GUI ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•ด์•ผํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํ—ค๋“œ๋ฆฌ์Šค ๋จธ์‹ ์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
๊ทธ git-gui ํŠธ๋ฆญ์€ ๋‚ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค.

GUI๊ฐ€ ์•„๋‹Œ ์ปดํ“จํ„ฐ์—์„œ VSCode๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
๋˜ํ•œ ์ด๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

vscode๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๊ด€๊ณ„์—†์ด Mac์—์„œ ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ssh-agent๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์ž๊ฒฉ ์ฆ๋ช… ํ‚ค ์ฒด์ธ์— ์—ฐ๊ฒฐํ•˜์—ฌ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

WSL์—์„œ ํ’€ / ํ‘ธ์‹œ๋ฅผ ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋ฐฑ์‹  ์›๊ฒฉ ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. VcXsrv๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ WSL์—์„œ ์‚ฌ๋žŒ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

ssh-agent๊ฐ€ WSL์—์„œ ์‹œ์ž‘ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? WSL ํ„ฐ๋ฏธ๋„์„ ์‹œ์ž‘ํ•˜๊ณ  .bashrc ๋˜๋Š” .bash_prifile ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค (ํ™ˆ ํด๋”์—์žˆ๋Š” ๊ฒฝ์šฐ). ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

eval `ssh-agent`
ssh-add

๋„์›€์ด ๋˜๊ฒ ์ง€๋งŒ ์•„๋‹ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. wsl์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ช‡ ๊ฐ€์ง€๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„์„ ์—ด์–ด๋‘๊ณ  ์–ป์€ ์ €์žฅ์†Œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋™๊ธฐํ™”ํ•˜์‹ญ์‹œ์˜ค.

๋„ˆ๋ฌด ๋ฉ€๋ฆฌ๊ฐ€๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”. ์ด๋ฏธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์€ VS Code๊ฐ€ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„ / ํŒจ์Šค์— ๋Œ€ํ•ด ์ด๋ฏธํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

/ cc @ alarr46 , ๋ญ๋ผ๊ณ ?

๋ฌผ๋ก  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ GUI๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋Š”๋ฐ WSL2์—์„œ ์‹คํ–‰๋˜๋Š” Linux ์ปดํ“จํ„ฐ์— GUI ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•ด์•ผํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํ—ค๋“œ๋ฆฌ์Šค ๋จธ์‹ ์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
๊ทธ git-gui ํŠธ๋ฆญ์€ ๋‚ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค.

GUI๊ฐ€ ์•„๋‹Œ ์ปดํ“จํ„ฐ์—์„œ VSCode๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
๋˜ํ•œ ์ด๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹น์‹ ์€ ๋‚˜๋ฅผ ์˜คํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. VSCode๋Š” Windows์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ์œผ๋ฉฐ ๋‚ด๊ฐ€ ๊ฐœ๋ฐœ ํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์†Œ์Šค๋Š” WSL 2์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋งํฌ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Windows์™€ WSL๊ฐ„์— Git ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹œํ—˜ ํ•  ๊ฒƒ์ด๋‹ค.

๋ฐ˜๋ฉด @ranolfi ๊ฐ€ ์˜ณ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์ด ์—ฌ์ „ํžˆ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ „์ฒด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. :-)

์˜ˆ, ๊ธฐ๋ณธ์ ์œผ๋กœ VSCode์— ๊ตฌํ˜„๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋†’์ด ํ‰๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‚ค๋ฅผ ํ™˜๊ฒฝ์— ์ถ”๊ฐ€ํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

์ด์ค‘ ๋Œ€์‹œ ์•ž์— ๊ณต๋ฐฑ์ด ์žˆ์–ด์•ผํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์Šค์Šค๋กœ์—๊ฒŒ ๋ฌผ์–ด๋ณด๊ธฐ ์ „์—๋Š” ์—†์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋งค๊ฐœ ๋ณ€์ˆ˜ ์—ฌ์•ผํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ํŒŒ์ผ ์ด๋ฆ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ... ๊ณต๋ฐฑ ์—†์Œ

๋‹ค์Œ ํ‚ค๋ฅผ ํ™˜๊ฒฝ์— ์ถ”๊ฐ€ํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

์ด์ค‘ ๋Œ€์‹œ ์•ž์— ๊ณต๋ฐฑ์ด ์žˆ์–ด์•ผํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์Šค์Šค๋กœ์—๊ฒŒ ๋ฌผ์–ด๋ณด๊ธฐ ์ „์—๋Š” ์—†์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋งค๊ฐœ ๋ณ€์ˆ˜ ์—ฌ์•ผํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ํŒŒ์ผ ์ด๋ฆ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ... ๊ณต๋ฐฑ ์—†์Œ

๋„ˆ๋ฌด ๋ฉ€๋ฆฌ๊ฐ€๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”. ์ด๋ฏธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์€ VS Code๊ฐ€ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„ / ํŒจ์Šค์— ๋Œ€ํ•ด ์ด๋ฏธํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

/ cc @ alarr46 , ๋ญ๋ผ๊ณ ?

๊ณต์‹ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆด๋ฟ ๊ทธ๋•Œ๊นŒ์ง€๋Š” Git-CLI๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋„ˆ๋ฌด ๋ฉ€๋ฆฌ๊ฐ€๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”. ์ด๋ฏธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์€ VS Code๊ฐ€ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„ / ํŒจ์Šค์— ๋Œ€ํ•ด ์ด๋ฏธํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

/ cc @ alarr46 , ๋ญ๋ผ๊ณ ?

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด์ด pull request ์—์„œ ๊ตฌํ˜„ ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด์ด pull request ์—์„œ ๊ตฌํ˜„ ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ์•„์ฃผ ์ข‹์€ ์‹œ์ž‘์ž…๋‹ˆ๋‹ค. ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋กœ์ผ“.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰