여러 번 SSH 접속을 반복하면서 배포하느라 번거로우셨던 적 있으신가요?
제가 다니는 회사는 B2B 프로젝트를 주로 진행하는데, 대부분의 프로젝트가 SSH 터널링을 통한 배포 환경을 갖추고 있습니다.
로컬 VPC는 윈도우 기반이고, 실제 배포가 이뤄지는 서버(B 서버)는 리눅스 환경입니다.
그런데 이 B 서버에 접근하려면 중간에 A 서버를 먼저 SSH로 거쳐야만 접속이 가능하죠.
매번 A 서버에 접속한 후 다시 B 서버로 들어가는 이 반복적인 과정이 꽤 귀찮게 느껴졌습니다.
그래서 이번 글에서는 SSH 터널링을 통해 로컬에서 B 서버로 바로 접근할 수 있는 방법을 공유해보려고 합니다.
이 모든 것은 CMD 에서 실행합니다. ip주소의 예시로 A서버는 111, B서버는 222로 표기를 하겠습니다.
ssh 키가 있는 지 확인
dir %USERPROFILE%\.ssh\id_rsa* %USERPROFILE%\.ssh\id_ed25519*
2025-02-21 12:00 PM 2,602 id_rsa
2025-02-21 12:00 PM 574 id_rsa.pub
ssh 키 없을 경우
파일을 찾을 수 없습니다.
ssh 키 생성
ssh-keygen -t rsa -b 4096 -f %USERPROFILE%\.ssh\id_rsa
A 서버에 ssh 키 등록
ssh-copy-id xxxx[@xx.xxx.xx.](<mailto:[email protected]>)111
Number of key(s) added: 1
Now try logging into the machine, with: "ssh [email protected]"
'ssh-copy-id' is not recognized as an internal or external command,
operable program or batch file.
수동으로 ssh 키 복사
공개키 내용 확인 및 복사(ssh-rsa 라고 시작을 할 건데 ssh-rsa부터 끝까지 복사)
type %USERPROFILE%\.ssh\id_rsa.pub
A 서버에 접속
ssh [email protected]
A 서버에 키 등록(””는 빼고 사용)
mkdir -p ~/.ssh && echo "복사한 공개 키 내용" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
비밀번호 없이 A 서버 접속 테스트
ssh [email protected]
B 서버에 ssh 키 등록
A 서버에서 ssh 키 생성 확인
ls -l ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
만약 키가 없다면 생성
ssh-keygen -t rsa -b 4096
공개키 확인
cat ~/.ssh/id_rsa.pub
A 서버에서 B 서버에 ssh 키 복사
ssh-copy-id xxxx[@xx.xxx.xx.](<mailto:[email protected]>)222
비밀번호 없이 B 서버 접속 테스트
ssh xxxx[@xx.xxx.xx.](<mailto:[email protected]>)222
VPC 에서 ssh 설정 파일 열기(파일이 없으면 새로 생성됨)
notepad %USERPROFILE%\.ssh\config