이전글에서 이어집니다.
https://codegarden-farmjun.tistory.com/118
Why SSH?
저희 프로젝트는 현재 CI/CD가 돌아가면서,
배포 시에는 AWS EC2에 SSH로 접속 후 도커를 활용하여 새로운 버전을 배포합니다.
따라서 맥 미니에도 SSH로 접속만 가능하다면 기존 CI/CD에 큰 변화 없이 CI/CD 흐름을 유지할 수 있게 됩니다.
1. 원격 로그인 설정(맥 미니)
맥 미니의 "설정" -> "일반" -> "공유"
"원격 로그인"을 On 해주시면 됩니다.
2. SSH 키 생성 (맥북)
일단 SSH 키는 “접속을 하는 쪽(클라이언트)”인 제 맥북에서 생성합니다.
그리고 그 공개 키만 맥 미니에 등록합니다.
그래야 맥북 → 맥 미니 접속할 때 “이 키 내 거 맞아?” 하고 확인 후 로그인을 허용합니다.
맥북이 인증자(비공개 키 소유자)가 되어야 합니다.
사실 보안상 100% 안전한 방법이 아니지만(유출되면 큰일이 나기 때문..)
제 맥북에서 생성한 비공개 키는 어차피 Github Action의 Secret에 등록되고 그 외에는 사용되지 않을 거라..
유출에 대한 책임은 깃허브에 위임하기로 했습니다.
터미널에 아래 명령어를 입력합니다.
$ ssh-keygen -t rsa -b 4096
Generating public/private [키 번호] key pair.
Enter file in which to save the key ([Home 경로]/.ssh/id_[키 번호]): test
Enter passphrase (empty for no passphrase): # Enter
Enter same passphrase again: # Enter
Your identification has been saved in test
계속 엔터를 눌러줍니다~
비밀번호 설정하면 접속할 때마다 비밀번호를 써야 합니다.
$ ls ./ssh
이제 요걸 터미널에 치면 id_rsa_pub, id_rsa가 생겼을 겁니다.
3. 맥북의 id_rsa.pub을 맥 미니로 복사
ssh-copy-id -i ~/.ssh/id_rsa.pub [사용자명]@[IP]
또는 직접 맥 미니 ~./ssh 경로 authorized_keys에 붙여 넣기 하면 됩니다.
4. 포트포워딩 Iptime
원격 접속과 마찬가지로 SSH로 원격 로그인 또한
외부망에서 사용 시 포트포워딩을 해줘야 합니다.
저는 iptime 공유기를 사용 중이기에 iptime 기준으로 진행하겠습니다.
먼저 192.168.0.1로 접속합니다.
로그인을 해 주시고,
메뉴 탐색기 -> 고급 설정 -> NAT/라우터 관리 -> 포트포워드 설정
내부 IP 주소는 맥 미니의 내부 IP 주소를,
포트는 SSH 접속은 일반적으로 22 포트를 쓰기에 외부 22 포트 연결 요청을 내부 22 포트로 포워딩합니다.
그리고 DDNS설정도 안되어있다면 DDNS도 설정해 줍니다.
관련 내용은 아래를 참고해 주세요!
https://codegarden-farmjun.tistory.com/118#5.%20DDNS%20%EC%84%A4%EC%A0%95-1
[홈 서버 - 2] 맥북으로 맥 미니 원격 접속하기
https://codegarden-farmjun.tistory.com/117 [홈 서버 - 1] 맥 미니로 홈 서버 구축을 하기로 결정한 이유Why 홈 서버?제목에서 알 수 있듯이, 맥 미니로 홈 서버를 직접 구축하기로 했습니다.이유는 다음과 같
codegarden-farmjun.tistory.com
5. 접속
ssh -i [키 경로] [사용자이름]@[도메인]
짜잔~ 이렇게 접속이 완료됐습니다~