본문 바로가기
카테고리 없음

[Linux] SSH 기본 설명 & 서버 설치, 설정 ①

by 떵해이 2020. 10. 14.
300x250

● 목    차 ●

ssh 기본 개념 & 서버 설치, 설정    ①

ssh client 접속(리눅스 터미널 & 윈도우 Putty)     ②


1. ssh란?

*ssh는 Secure shell의 약자.

*원격 머신에 로그인하여 그 안에 있는 명령들을 실행하는 프로그램.

 

부가설명

ssh는 telnet과 유사하지만 패킷전송시 암호화시키므로 안전하게 전송가능.

ssh는 프로토콜(규약) 2가지 -> ssh1, ssh2

ssh2는 ssh1을 개선한 것으로 호환이 된다고하지만 기본적으로 호환성을 포함시키고 있지않음.

ssh2서버 단독은 ssh1 연결을 관리 할 수 없으므로 ssh1 서버가 반드시 있어야함.


2. ssh 설치

 리눅스에 사용하는 ssh는 두가지다.

   원 제작처 www.ssh.com 에서 제작한 것과 www.openssh.org가  가 제작한 것

   대부분 배포판에서 openssh에서 제작한 것을 기본으로 지원한다.

 

 ssh는 ssh서버와 ssh클라이언트로 구분되고,

   ssh로 접속을 하려면 ssh서버설치되어 있어야 하며, 클라이언트에서도 ssh가 지원되는 프로그램을 이용해야한다.

 

 

대부분 리눅스 배포판에 openssh가 기본으로 설치가 되어있지만 확인해보고 설치도 해보도록 하자.

 

일단 설치 유무를 위해

# yum list installed | grep openssh*     명령어로 패키지가 설치되어 있는것을 확인했다.

설치한적이 없지만 기본적으로 설치가 되어있다. 그래도 꼭 확인해주세요.

 

 

혹시나 설치가 되어있지 않은 분들은

# yum -y install openssh-server open-clients openssh-askpass 

명령어를 쳐서 새로 다운로드 해준다. (-y 옵션은 전부다 설치질문에 yes를 미리 누르는 것)

 

 

위에 보면 openssh-askpass가 기본적으로 설치되어 있지않아 필자도 같이 다운로드를 했습니다.

설치가 완료되면 complete! 라고 문구가 나옵니다.

참고로 openssh-askpass 패키지는 openssh를 사용시 암호를 요청하는 대화창을 보여주는 기능을 지원해줍니다.

openssh 설치가 완료 !


3. ssh 설정

서버 관련 주 설정파일은 /etc/ssh/sshd_config 에 있다.

보통 기본 설정파일 그대로 사용해도 상관없지만 그룹 or 사용자들을 제한하려면 몇가지 설정을 해야한다.

 

설정파일에서 수정을 해봅시다.

# vi /etc/ssh/sshd_config

 

 

들어가서 # :(콜론) set nu 라고 입력합니다.

 

 

줄 번호가 나온뒤에 17번째줄을 보면 주석처리가 되어있다.

주석은 부가설명이라 실행이 되지 않는다.

 

우리는 17번째줄을 수정 할 예정인데 수정하기에 앞서 몇가지 알고가자!

 

vi 기능은 텍스트같은 파일등을 들어가서 수정하는 것이다.

안에서 움직이는 키가 윈도우와 다르다. H(왼쪽), J(아래쪽), K(위쪽), L(오른쪽) 방향키를 숙지해두자.

또한, 수정할때는 i키를 눌러 왼쪽하단에 insert 상태로 만든뒤에 수정(추가 or 삭제)한뒤에 esc키를 누르면 된다.

수정을 다하고 저장하고 나갈 때 # :(콜론) wq 하고 나가면 된다.

tip! 강제로 그냥 나가고 싶을 때 # :(콜론) q! 하고 나갈 수 있다.

 

이제 다시 본론을 돌아와 17번째줄 주석을 없애준다.

이유는 ssh서버는 보통 22번 포트를 사용하기 때문에 포트를 지정해주는 것이다.

 

 

이제는 38번째줄에 주석을 똑같은 방식으로 없애준다.

이 설정을 하는 이유는 PermitRootLogin 은 루트 로그인 허가인데, 

보안상 root계정은 되도록 접속하지 않는것이 좋다. 공부해야하는 입장으로 허가를 해주도록 합시다.

그리고 # :wq 를 통해 저장하고 나가자! 

 

설정파일안에 여러가지 설정들을 상세히 할 수 있는것들이 많다.

궁금하거나 필요하신 분들은 구글링 하시면 다 나온다. 엄청 많다.

예를 들면..

     ssh 포트 변경

     접속 허용 client 및 password 입력 시도 횟수 제한 설정       

     비밀번호, 공캐 키 사용자 인증 설정

     접속 로그, 배너 메세지 등등 ...

 

파일을 수정한 뒤 원래 재부팅을 적용시키기위해 해야하지만,

# systemctl restart sshd.service  로 sshd를 재시작해준다.

 

 

위 설정이 끝났으면 이제 ssh를 사용하는 통로인 22번 포트 방화벽을 풀어줘야 한다.

# firewall-cmd --permanent --zone=public --add-port=22/tcp

※ 혹시 포트 번호를 다르게 하거나 지우고 싶으신 분들을 위해,, 포트 제거 방법

   # firewall-cmd --zone=public --remove-port=22(포트번호)/tcp(프로토콜)

※ --permanent는 옵션입니다. 영구적으로 추가할 경우나 제거할 경우 사용하시면 됩니다.

   혹시나 영구적으로 추가 하시지 않으면,, 컴퓨터 종료시 같이 종료됩니다.

 

 

완료하면 success 라는 문구가 뜨고 난 뒤

# firewall-cmd --reload 로 적용을 시켜줍니다.

또 success 라는 문구가 뜨면 reboot 재부팅을 시켜줍니다.

 

이렇게 하면 ssh설치가 완료됩니다.

이제 서비스가 잘 구동하는지 확인해보록 하겠습니다.

# service sshd start (또는 systemctl start sshd)

만약 위 명령어가 인식이 되지 않는 경우 sshd대신 ssh로 입력하여 시도해보세요.

 

 

별다른 문구 없이 시작이 되었으면 다른 명령어들을 이용해 서비스가 구동 중인것을 확인해봅시다.

3가지 방법으로 확인 해봅시다.

 

# systemctl status sshd

Active:active로 나타난다면 서비스가 구동 중입니다.

 

 

# service sshd status

위와 같이 Active:active로 나타난다면 서비스가 구동 중입니다.

 

 

# ps -aef | grep sshd

결과가 나타난다면 서비스가 구동 중입니다.

 

성공적으로 ssh 설치가 끝났습니다.


4. ssh 접속

  ▷ 호스트 주소(IP or 도메인)과 사용자 정보가 있으면 접속이 가능합니다.

   각각의 ssh클라이언트 프로그램 마다 접속 방법이 다를 수 있습니다.

 

※ 호스트 주소는 ifconfig 또는 ip a 명령어를 통해 확인 가능.

(혹시 ifconfg 명령어가 안된다면,, # yum install net-tools 패키지를 설치하세요)

보통 ens33 또는 eth0의 inet 항목이 현재 호스트의 IP입니다.

# ifconfig

# ip a

ifconfig 또는 ip a 둘다 똑같은 ip가 나옵니다.

 

 

ssh client 설치

   ssh 프로토콜을 사용하여 원격 호스트에 접속하려면 접속 가능한 ssh client 프로그램이 필요합니다.

  리눅스 or MacOS 운영체제의 경우 ssh client인 openssh 가 기본으로 탑재되어 있어 터미널 응용프로그램을 열어

      명령어를 입력하면 바로 접속이 가능합니다.

      (터미널에서 ssh [UserName]@[HostName]을 입력하여 연결 가능합니다.

      다른 외부 클라이언트 프로그램들도 설치도 가능합니다.)

  윈도우 운영체제의 경우 ssh client가 없기 때문에 openssh를 이용할 수 있는 외부 터미널을 설치해야 합니다.

     (대표적으로 Putty, SecureCRT, Xshell 등이 있습니다. 클라이언트 마다 장단점들이 있습니다.)

   

 

다음 글에서는 리눅스끼리 터미널로 접속을 한번 시도해보고 Putty 연결에 대해서 소개하겠습니다. 대부분 접속 방법은 비슷하기 때문에 참조하시면 됩니다.

 

반응형

댓글