[Ubuntu] SSH Server 설치 및 사용방법[Ubuntu] SSH Server 설치 및 사용방법

Posted at 2018. 11. 18. 20:05 | Posted in Linux/Ubuntu




■ SSH 서버(PORT 22)



SSH 서버
는 원격지에서 서버에 터미널로 접속하는 것을 가능하게 해주는 서버이다.
클라이언트가 SSH 서버에 원격으로 접속하면 터미널 창에서 할 수 있는 모든 시스템 관리 작업을 원격에서 할 수 있기 때문에

대부분의 서버에 가장 기본적으로 설치되는 서비스이다.

SSH 서버를 설치하지 않으면 항상 컴퓨터에 직접 붙어서 작업을 진행해야 하는데 꽤나 불편하기도 하고,

간혹 컴퓨터에 접근하기가 쉽지 않은 경우도 있기 때문에 어떤 서버를 구축하든지 SSH 서버는 필수적으로 설치하는 경우가 많다.

SSH를 사용하기 이전에는 텔넷(TELNET)이라는 프로토콜을 가장 많이 사용했는데,
TELNET은 서버와 주고 받는 데이터를 암호화하지 않기 때문에 중간에 악의적으로 데이터를 가로채서 분석하면 중요한 정보가 노출될 수 있다는 보안상 문제점이 있다.
따라서 최근에는 보안성이 강화된 SSH를 대부분 사용한다.
SSH를 이용하기 위해서는 클라이언트 측에서는SSH 클라이언트 프로그램을 이용해야 하는데 PUTTY, XShell 같은 프로그램이 대표적이다.







서버측에서 SSH 서버를 구축하는 데 가장 많이 사용되는 프로그램은 OpenSSH이다.


우분투도 OpenSSH를 SSH 서버로 사용하고 있다.





■ SSH 설치 전 준비작업



SSH 서버를 포함해서 모든 서버를 설치하기 전에 확인해야 할 사항이 있다.


아래 확인 사항들은 집에서 초고속 인터넷 망에 인터넷 공유기를 연결해서 사용하는 환겨을 가정하고 있다.


이런 환경이 아닌 다른 환경(서버 호스팅 또는 공인 IP를 제공받는 환경)일 경우 아래 준비 작업이 필요 없을 수 있다.



① DDNS 서비스를 설정했는지 확인한다.
    IP주소를 직접 이용하는 방법도 가능하지만 언젠가 망 사업자에 의해 IP 주소가 변경될 수 있으므로

    장기간 서버를 운영하려면 DDNS 서비스를 설정해 줘야 한다.

② 서버로 사용할 컴퓨터의 네트워크 장치의 설정이 DHCP가 아닌 정적 IP 주소로 되어 있는지 확인한다.

③ 공유기의 포트 포워딩이 설정되어 있는지 확인한다.

    공유기의 포트 포워딩을 하려면 포트 번호를 지정해 주어야 하는데

    SSH 서버의 경우 기본 설정은 TCP 22번 포트를 사용한다.




위 3가지 중에서 2번, 3번 항목은 집에서 공유기를 사용한다는 가정 아래 필요한 절차이다.


만약 인터넷 공유기를 사용하지 않고 직접 초고속 인터넷 망에 컴퓨터를 연결해서 사용한다면 2, 3번 항목은 생략하고 1번만 확인하면 된다.





■ SSH 서버 설치 하기



우분투에서 SSH 서버를설치하는 방법은 매우  간단한다. 별다른 설정도 필요 없고 그저 관련 패키지 설치만 하면된다.


 $ sudo apt-get install openssh-server




위 명령을 실행하면 의존성 있는 패키지를 포함해서 정말 SSH를 설치할지 우분투가 물어보는데 Y키를 누르면 설치가 진행된다.


설치가 정상적으로 완료되면 자동으로 서버가 시작된다.

아래 명령을 이용해서 서버가 정상적으로 실행되고 있는지 확인 할 수 있다.



 $ netstat -atn



22번 포트 상태가 LISTEN인 것을 볼 수가 있는데 22번 포트가 SSH 서버를 접속할 때 사용하는 포트이다.

실제로 접속해서 테스트 해보는 방법도 가능하다. 바로 로컬 접속을 해보는 것이다.


 $ ssh localhost

 Are you sure you want to continue connecting? yes

 password : 현재 접속중인 우분투 계정의 비밀번호




SSH 명령 뒤쪽에 적은 localhost는 접속할 서버의 주소를 지칭한다.


위 명령은 localhost 즉, 자기 자신으로 SSH 접속을 하라는 명령이다.


위 명령을 수행하는 데 한번도 접속한 적이 없는 서버로 접속 요청을 받았다면 위에서 보이는 것처럼 경고문이 한번 뜨게 된다.


정말 접속할 건디 다시 한번 물어보는데 “yes”를 입력하고 접속에 문제가 없다면 패스워드를 입력하는 항목이 나온다.


이때 로그인한 우분투 계정의 암호를 입력하면 된다.



로그인이 성공적으로 완료되면 아래와 같이 로그인 화면을 보게 된다.






비록 로컬이긴 하지만 성공적으로 SSH 서버를 통해서 터미널 접속을하게 된 것이다.


콘솔 작업을 마치고 접속을 종료하려고 한다면 “exit”라고 입력하면 된다.



 $ exit





SSH 명령에 대해 좀 더 살펴보도록 하자. wickedmiso.com 이라는 서버에 접속하려면 아래처럼 입력한다.




 $ ssh wickedmiso.com



간단해 보이지만 여기에는 생략되어서 강제로 입력된 항목이 존재한다.

그 중 하나는 서버에 로그인하려는 계정 정보인데 생략되었기 때문에 자동적으로 현재 로그인한 사용자의 계정명에 적용된다.


다음으로 서버의 포트 번호인데 생략되었기 때문에 자동적으로 22번으로 접속하게 된다. 만약 현재 로그인한 계정이 아닌 다른 계정으로 서버에 접속하고 싶다면 아래처럼 입력한다.


 $ ssh saak@wickedmiso.com




위 명령은 접속 wickedmiso.com 서버로 SSH 접속을 하는데 계정은 saak라는 계정으로 로그인 하라는 명령이다.

다른 포트번호를 접속하고자 한 아래 명령처럼 입력하면 된다.


 $ ssh wickedmiso.com -p 22




위 명령은 22번 포트 즉, 기본설정 포트로 접속하라는 명령이다. -p 옵션을 이용하면 된다.


물론 위 접속이 성공적으로 이루어지려면 서버가 22번 포트로 SSH 서비스를 운영하고 있어야 한다.





■ SSH 서버 설정 변경하기




SSH 서버는 변경할 설정이 크게 없지만, 가끔 포트 번호를 변경해야만 하는 상황이 발생할 수 있다.


예를 들어 22번 포트를 초고속 인터넷 망사업자가 막아놓은 경우가 그렇다.


망 사업자가 특정 포트의 접속을 막기도 하는데 이럴 경우는 해당 포트를 포기하고 다른 포트를 사용해서 서버를 운영하는 방법 외에는 없다.

-. 우분투에서 SSH 서버의 설정 변경을 다루려면 sshd_config 파일을 열어야 한다.
-. 아래 파일을 수정하려면 관리자 권한이 필요하다.(따라서 명령 앞쪽에 반드시 sudo 명령을 붙여주자.)


 $ sudo vim /etc/ssh/sshd_config



파일의 윗부분에 Port 22라는 항목이 있는데 이를 원하는 다른 숫자로 바꾸어 주고 저장하고 VIM을 빠져 나온다.
이제 SSH 서버를 재시작 해주자.


 $ sudo /etc/inid.d/ssh restart



위 명령은 SSH 서버를 재시작하는 명령이다. 만약 서버를 정지시키거나, 정지된 서버를 다시 시작하려면 아래와 같이 입력한다.

 $ sudo /etc/init.d/ssh stop

 $ sudo /etc/init.d/ssh start



서버가 재시작 되었다면 설정 파일에 새롭게 반영한 포트 번호로 잘 바뀌었는지 확인해 주자.




 $ netstat -atn



netstat 명령을 통해서 SSH 서버의 포트 번호가 잘 변경된 것을 확인 할 수 있다.




■ 파일 전송하기



SSH 서버에 접속해서 원격지에서 서버 작업을 진행하다 보면 간혹 서버로 파일을 전송하거나

서버에 있는 파일을 원격지에 있는 작업 PC로 전송 받고 싶은 경우가 발생한다. 이럴경우 여러가지 방법이 있다.

대표적인 방법으로 FTP 서버를 구축하고 FTP 클라이언트를 이용하거나 WebDAV를 이용하는 방법이 존재한다. 여기서는 이미 구추된 SSH 서버를 이용해서 파일을 전송하는 방법에 대해 살펴보자.

SSH 서버를 이용해서 파일ㅇ르 주고 받으면 이미 SSH 서버를 구축했기 때문에 별도로 새로운 서버 프로그램을 설치하거나 셋팅할 필요가 없다는 장점이 있다.



 $ scp 전송파일 사용자ID@서버네임:디렉토리(폴더) 경로



위 명령은 현재 디렉토리에 있는 전송팔 파일을 원격지에 있는 서버네임의 사용자ID 계정으로 접속해서 디렉토리 폴더로 전송하라는 명령이다.

현제 폴더에 있는 전송파일을 전송할 서버의 사용자 계정의  서버의 특정 경로로 전송하고 싶다면 위와 같이 입력한다.




반대로 원격지에 있는 파일도 현재 폴더로 가져올 수 있다.


원격지 서버 wickedmiso.comsaak 라는 계정으로 로그인한 수 /home/saak/text.txt 파일을 현재 폴더로 전송하고자 한다면 아래처럼 입력한다.



 $ scp 사용자ID@서버네임:디렉토리(폴더) 경로/전송파일 파일을 받을 경로


만약 디렉토리를 전송하고 싶다면 -r 옵션을 이용한다.



※ SSH를 이용한 파일 전송이 성공했다면 FTP를 사용하는것처럼 전송프로그램을 통해서도 파일의 전송이 가능해 진다.






관련 포스팅 : [DeveloperTool] SSH, 터미널 접속시 유용한 Mobaxterm - FREE







Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기