Intro
앞선 포스트들에서 서버의 세팅과 네트워크 세팅까지 마쳤습니다. 이제 외부에서 서버를 제어할 수 있도록 SSH를 이용해 서버에 접속해보도록 하겠습니다.
SSH 란?
Secure SHell 의 줄임말로, 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜(통신 방식) 입니다. 기존의 Telnet 이라는 방식의 원격 접속에서 보안성을 높이기 위한 암호화 방식 등을 도입한 통신 방식입니다. 출처 : gabia 라이브러리
SSH 설치
SSH 통신을 위해서는 우선 홈 서버에 SSH-server 를 설치해야 합니다. SSH-server 는 가장 많이 사용되는 openssh-server 를 사용하겠습니다.
1
sudo dnf install openssh-server
설치하는 패키지의 이름이 openssh-server 입니다. 이름에서 알 수 있듯이 server 즉 어떠한 클라이언트의 요청에 대해 응답을 하는 server 를 설치합니다. 홈 서버에서는 응답만 하면 되므로 ssh server 만 설치해주면 됩니다. 만약 홈 서버에서 다른 서버로 ssh 통신 요청을 할 일이 있다면 ssh-client도 설치해줘야 합니다.
설치가 완료되었다면 ssh 서비스를 실행시켜줍니다.
1
sudo systemctl start sshd # ssh 데몬 실행
더불어서 ssh 서비스가 서버 시동시 자동으로 실행되도록 설정해주겠습니다.
1
sudo systemctl enable sshd # 서버 시동시 sshd 자동 실행
ssh 서버에 대한 설정은 /etc/ssh/sshd_config
파일에서 진행할 수 있습니다. 아래에서는 핵심적인 설정 부분을 기재했습니다. sshd_config 설정 파일의 내용을 변경한 뒤 적용을 위해서는 sshd 재시작을 해야 하는 것을 잊지 말아주세요!
1
2
3
4
5
6
7
sudo vi /etc/ssh/sshd_config # ssh 설정 파일
Port 22 # ssh 포트 번호 지정
ListenAddress 0.0.0.0 # 접속 허용 IP (0.0.0.0 : Any)
PermitRootLogin no # root 계정으로 로그인 허용 여부
sudo systemctl restart sshd # ssh 설정 변경 적용
포트포워딩
외부 네트워크와 내부 네트워크 게이트웨이 단의 라우터에서 포트포워딩을 진행해줍니다. 즉, 외부에서 홈 네트워크의 공인 IP로 접근해서 내부 네트워크에 있는 홈 서버의 SSH 서비스 포트로 접근할 수 있게 포트끼리 매핑을 해주는 작업이 필요합니다. 이 부분은 이전 포스팅을 참고해주세요. sshd의 기본 포트는 22번이라는 점을 잊지 말아주세요!
노트북 및 모바일 기기에서 SSH 클라이언트 설치 및 이용
이제 준비는 끝났습니다. 이제 홈서버에 접속을 시도할 기기들에 SSH 클라이언트를 설치하고 홈서버와 SSH 통신을 해보겠습니다. 이 부분 또한 이전 포스팅을 참고해주세요.
ssh key 발급 및 등록(윈도우)
모바일 환경에서 SSH 키 발급받기