개인용 Git Remote Repositary 구축기(2)

Summary
개인용 git server 구축
카테고리
Machine Learning
Original creation date
Jun 21, 2023
생성일
Jan 30, 2026 12:04 PM
태그
git

개인용 Git Remote Repositary 구축기(2)

Open ssh 서버를 활용한 Git Remote Repositary 환경 설정

1. 구축 이유

구글 드라이브

2. 구축환경 방법

1) Open SSH 서버 설정.

notion image
 
notion image
 
notion image
 
open ssh 서버 설치
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
open ssh 클라이언트 설치(대개의 경우 기본설치되어있는것같다)
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
open ssh 서버를 서비스를 실행하기
Start-Service sshd
서비스를 자동시작하게 설정한다.
Set-Service -Name sshd -StartupType 'Automatic'
기본shell을 파워쉘로 설정 (선택사항)
New-ItemProperty -Path "HKLM:\\SOFTWARE\\OpenSSH" -Name DefaultShell -Value "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -PropertyType String -Force

2) Open ssh 서버에 대한 포트포워딩 설정

공유기의 설정으로 진입한다. 한국에서 자주 사용되는 iptime공유기의 경우 웹브라우저에서 192.168.0.1을 입력하면 공유기 설정을 들어갈수있다.
notion image
 

2.5) SSH Server bash사용하게 변경

New-ItemProperty -Path "HKLM:\\SOFTWARE\\OpenSSH" -Name DefaultShell -Value "C:\\Program Files\\Git\\bin\\bash.exe" -PropertyType String -Force
ssh://아이디@ip주소/~/Git레포이름.git
이런식으로 주소를 사용하면되는데 home directory로 가는 path로 ~ 을 사용하려면 openssh server에서 기본적으로 사용하는 cli가 bash여야한다. 따라서 파워셀을 관리자권한으로 실행하여 다음 커맨드를 입력해준다.

3) SSH 키 설정(옵션)

<SSH 키값복사>
키생성:  ssh-keygen -t ed25519
키복사: scp ./id_ed25519.pub 1@carpinus.iptime.org:.ssh/
(SSH로 서버접속-서버에서처리)
서버에 공개키복사:  cat .\id_ed25519.pub >> .\authorized_keys
복사된 공개키 관리자파일로 복사: scp C:\Users\1\.ssh\id_ed25519.pub C:\ProgramData\ssh\administrators_authorized_keys
서버에 설정: icacls.exe C:\ProgramData\ssh\administrators_authorized_keys /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
그런데 어쩐 일인지 작업하는 컴퓨터 중 한 놈은 지속적으로 아래의 메시지를 뱉는 것이 아닌가? (참고로 필자는 Windows에서 컨텍스트 메뉴를 통해 Git Bash를 켜서 주로 git 작업을 한다. 리눅스와 왔다갔다 할 때 혼동을 최소화할 수 있기 때문.) Enter passphrase for key '~/.ssh/id_rsa': 아오 할 때 마다 ssh 키에 대한 암호를 입력하라니 여간 귀찮은 일이 아니다. 이대로 이 문제를 방치할 수는 없어서 해결방법을 찾아보았다. 문제는 ssh-agent가 이 키를 저장하고 있지 않아서 매번 물어보는 문제였다. 해결 방법은 아래의 커맨드다. ssh-add ~/.ssh/id_rsa 그런데 또 이런 문제가 발생하는 것이 아닌가!? 출처: <https://gentlesark.tistory.com/86> [삵 izz well] <https://docs.microsoft.com/ko-kr/windows-server/administration/openssh/openssh_keymanagement> ssh-keygen -t ed25519 <https://icechou.tistory.com/325> <https://icechou.tistory.com/324?category=283454>

4) Remote Git Repositary 설정.

한번 ssh 설정이 되었다면, 이제 구글드라이브에 설정했던것처럼 ssh로 접속했을때의 루트폴더에 bare git 레포지터리를 만들면된다.
 
ssh://계정이름@도메인주소/~/(루트폴더하위 깃을 둔 폴더)/레포지터리이름.git
 
예를들어 계정아이디가 goodday 이고 dns로 설정한 ssh서버로 접근할수있는 주소가 goodday.com이라고할때, test레포지터리를 만들어서 이를 접근한다고하면, (루트폴더에 GitRepo폴더를 만들고 그 하위에 init bare레포를 test로 만든다)
ssh://goodday@goodday.com/~/GitRepo/test.git 가 접근이가능한 원격레포지터리 주소가 된다.