나만의 git 서버 만들기 - (2) Local Server에 SSH 셋팅하기

김지수·2021년 8월 31일
1

Ubuntu Server에 SSH 서버를 구축하고 접속하기 위한 설정 방법을 알아본다. 추가적으로 SSH 설정에 따른 XRDP, VNC 에러를 해결할 수 있는 추가 설정방법을 제시한다.

  • (option) 공유기로 접속시, 포트 포워드(Port Forward) 셋팅
  • SSH 서버 구축하는 방법
    • SSH 서버 구축
    • SSH 접속을 위한 port 할당
  • SSH 설정에 따른 XRDP, VNC 추가 설정방법

0. (Option) 포트포워딩(Port Fowrding) 설정 방법

개발 환경에 따라서, 1개의 외부 IP(고정 IP)에 공유기를 통해 여러대의 컴퓨터를 연결할 수 있다. 이러한 접속 문제를 해결하기 위해 필요한 것이 공유기의 Port fowarding(포트 포워딩) 설정이다.

  • 포트 포워딩이란?
    * 외부 IP로 접속할 때, 특정 포트로 외부에서의 접속을 할 경우 내부 IP에 할당해주는 옵션을 의미함.

공유기에서 할당한 192.168.0.13이라는 주소는 공유기 내의 주소이기 때문에, 같은 공유기 망 내에서만 접속이 가능하다. 그렇기 때문에, LTE 망을 사용 중인 핸드폰이나, 공유기에서 나온 와이파이망을 사용하지 않는 일반 컴퓨터에서는 192.168.0.13이라는 주소를 쳐봤자 접속이 불가능하다.

비유하자면 192.168.0.132북 480C호라고만 쓰여있는 주소와 같다. 같은 아파트 단지에 살고 있다면 2북 480C호라는 주소만으로도 충분히 찾아갈 수 있으나, 택배를 받으면서 주소란에 2북 480C호에 써두면 받을 수 없다.

그렇다면, 외부에서 내부 컴퓨터로 접속하기 위해서는 어떻게 해야할까? 공유기를 사용하여 외부 IP(고정 IP)에서 내부 IP로 접근할 수 있는 Port를 열어주고, 해당 주소를 사용하는 것이다.

자세한 공유기 설정을 통한 Port Fowarding 방법은 공유기 제조사마다 다르므로, 아이피타임(ipTIME)기준으로 설명이 잘 나와 있는 블로그 글을 공유한다. 참고해서 아래와 같이 내부 IP 접속을 위한 port를 할당해주면 된다

  • 참고로, 10022 port를 활용해서 SSH 접속을 할 예정이다.
    • 본래 SSH 접속을 위한 default port22 port이지만, 보안상의 이유로 임의로 바꿔주는 것이 좋다.
      • IP만 안다면, 모두가 22 port로 접속하려 들테니깐??
    • 여기서 10022는 임의로 지정한 port이다. 겹치지만 않는다면, 본인이 원하는 아무 port를 개방해도 상관이 없다.
      • 예를 들어 원격 데스트탑인 xrdp3389port를 사용한다.

1. SSH 서버 구축하는 방법

sshSecure Shell의 약자로, 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행할 수 있도록 해주는 프로토콜을 말한다. 이 챕터에서는 우분투에서 SSH를 이용해 서버를 구축한 뒤, SSH Client를 통해 다른 컴퓨터에서 해당 SSH Server에 접속하는 방법에 대해 알아보려 한다. 덤으로, ssh 접속을 위한 Port를 변경하는 방법도 알아본다.

1) SSH Server 설치 하는 방법

a) SSH 설치

Ubuntu에서 SSH Server를 이용하기 위해서는 먼저 ssh가 설치되어 있어야 한다. 설치방법은 아래와 같다.

>>> sudo apt-get install ssh

그렇면 설치가 완료 될 것이다.

b) SSH service 시작

SSH service를 시작하기 위해서는 관리자 권한인 root로 로그인이 가능하게 설정되어 있어야 한다. root로 로그인 설정이 되어있는 상태라면 아래와 같이 SSH service를 시작할 수 있을 것이다.

>>> sudo service ssh start

c) SSH Server 상태 확인

다음의 명령을 통해서 서비스 중인 SSH 서버의 상태를 확인할 수 있다.

>>> service ssh status


또한 실행중인 서버의 IP 주소 및 포트 번호를 확인할 수 있다.

>>> sudo netstat -ntlp |grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      14421/sshd      
tcp6       0      0 :::22                   :::*                    LISTEN      14421/sshd

위의 결과는 22 port를 통하여 SSH 접속이 이루어지고 있음을 보여주고 있다.

d) SSH 접속 port 변경

ssh로 접속하는 포트를 변경하기 위해서는 sshd_config 파일을 수정해야 한다. 아래에서는 sshd_config 파일을 수정하여 앞선 공유기 설정에서 Port fowarding으로 열어둔 10022으로 ssh 접속을 할 수 있도록 설정한다.

>>> sudo gedit /etc/ssh/sshd_config

sshd_config 파일에서 Port 의 주석을 해제하고 10022으로 수정

#	$OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

Port 10022			## <---- 이 부분의 주석을 해제하고 10022로 수정
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

이후에 SSH 서비스를 재시작하면 된다.

>>> service sshd restart

2) Ubuntu 및 Window Powershell에서 SSH server 접속하는 방법

외부에서 단순히 SSH 접속을 하는 것은 어렵지 않다.
ssh (user)@(public DNS) -p [port 번호]

>>> ssh kass@192.168.0.13 -p 10022

※ Git clone 등으로 SSH 접속시, 유의 사항

SSH 접속 시, 1) 내부 IP끼리 접속인지, 2) 외부에서 내부 IP로 접속인지에 따라서 접근 방법이 다르다.
(단, User ID는 kass라고 가정하며, 내부 IP는 192.168.0.13, 외부 IP(=고정 IP)는 72.243.14.15으로 가정한다.)

  • IP 접속을 위한 규칙은 다음과 같다
    • (user)@(public DNS):[port 번호]
  • 같은 공유기에 연결된 컴퓨터들(=내부 IP끼리)에서 접속할 경우,
    • kass@192.168.0.13:10022으로 접속
  • 외부 컴퓨터에서 접속할 경우,
    • kass@72.243.14.15:10022으로 접속

2. SSH 설정에 따른 XRDP, VNC 추가 설정방법(XRDP 접속 불가시)

SSH 보안 프로토콜 추가 설정에 따라서, 기존에 잘만 접속되던 GUI 원격 접속 Tool인 XRDP, VNC등으로 접속이 안되는 현상을 확인하였다.

해결책은 간단하다.

>>> sudo gedit /etc/xrdp/xrdp.ini

위와 같은 파일을 열고, 아래의 한 문장을 추가해주면 된다.
address=0.0.0.0

위와 같은 한 줄을 추가한 후에, 아래와 같은 step을 진행하면 된다.

  • xrdp port(3389) 재할당
  • xrdpssh 재시작
  • 컴퓨터 재시작
>>> sudo ufw allow 3389
>>> sudo service xrdp restart
>>> sudo service ssh restart
>>> 컴퓨터 다시 시작

(추천) 처음 Ubuntu 설치 후, 편하게 XRDP 셋팅하는 방법

사실, ubuntu를 처음 깔고나서 원격 접속을 위해서 구글링을 해보면, 상당히 복잡한 과정을 거쳐서 설치해야 한다. 그렇지만, 이 귀찮은 과정을 자동화 해주는 개꿀같은 프로그램을 누군가가 개발하였다.

https://www.c-nergy.be/products.html

사용법은 홈페이지에 잘 나와있다.

https://c-nergy.be/blog/?p=16817

개발자에게 존경을 표한다....

(참고 링크)

profile
Inha Univ. Naval Architecture and Ocean Engineering (NAOE) & Lab. of MAritime System COnTrol(MASCOT), Master's degree / keywards : Maritime Autonomous Surface Ships(MASS), Deep Learning, Reinforcement learning, Unity ML-Agents, Navigation & Guidance

0개의 댓글