ssh 서버 설치 및 root 계정 접속 허용하기


이번에는 ssh 서버 설치 및 root 계정으로 접속하는 법에 대해 포스팅하려고 한다. root 계정으로 접속하는 법을 따로 알아보는 이유는 ssh를 설치했다고 하더라도 기본적으로 root 계정을 통한 ssh 접속은 차단되기 때문이다. 물론 어려운 내용은 아니고 인터넷에도 많이 나와있는 내용이지만 이번 기회에 간단하게 정리해보고자 한다. 환경은 Docker Container의 Ubuntu 18.04 컨테이너, CentOS 7 컨테이너이다(모두 root인 경우로 진행하였습니다).


(1) Ubuntu

우분투에는 기본적으로 ssh 서버가 설치되어 있지 않다. 따라서, 대부분 설치를 해야하는데, 먼저 dpkg 명령어를 통해 openssh-server 패키지가 설치되어 있는지 확인한다.

$ dpkg -l grep openssh-server

아무것도 나오지 않는다. ssh 서버가 설치되어 있지 않기 때문이다. 업데이트와 함께 ssh를 설치해보자.

$ apt-get update -y && apt-get install openssh-server -y

설치가 끝나면 잘 설치되었는지 확인해본다.

$ dpkg -l
grep openssh-server

아까와는 다르게 openssh-server 패키지가 나온다. 잘 설치가 된 것이다. 하지만 root 계정 접속은 기본적으로 차단되어 있기 때문에 이를 허용해줘야 한다. ssh 설정 파일을 수정해주면 된다.

$ vim /etc/ssh/sshd_config

여기서 #PermitRootLogin prohibit-password 라고 되어 있는 부분을 PermitRootLogin yes 로 바꿔주고 저장한다. 또한 Port 부분이 있는데, default는 22번이지만 다른 포트번호를 사용하고 싶으면 #을 제거하고 Port 2222 이런식으로 해주면 된다. 그 다음 root가 접속할 수 있게끔 비밀번호를 설정해준다.

$ passwd root

그 다음 ssh 서버를 시작한다.

$ service ssh start 또는 $service ssh restart



이제 root로 접속해보자.

root로 ssh에 잘 접속됨을 확인할 수 있다.


(2) CentOS

CentOS에는 기본적으로 ssh 서버가 설치된다. 그래도 Ubuntu처럼 먼저 openssh-server 패키지가 설치되어 있는지 확인해보자.

$ rpm -qa openssh-server

필자의 경우 Docker Container이기 때문에 ssh가 없었다. 또한 CentOS에 여러 설정으로 인해 설치가 안되어있을 수 있기 때문에 설치가 되어있지 않다고 가정하고 진행해보겠다. 업데이트와 함께 ssh를 설치해보자.

$ yum update -y && yum install openssh-server openssh-clients openssh-askpass -y

다 설치됐으면 잘 설치되었는지 확인해보자.

$ rpm -qa openssh-server

아까와는 다르게 openssh-server 패키지가 나온다. 이 이후부터는 Ubuntu와 똑같다. 단, ssh를 시작해주는 명령어가 다르다.

$ systemctl start sshd 또는 $ systemctl restart sshd

CentOS는 이렇게 해주면 된다. start 대신 restart를 해줘도 된다.


※ 참고 : Ubuntu 컨테이너와 다르게 CentOS 컨테이너는 systemctl start sshd를 하면

이렇게 된다. 이건 Docker Container에 대한 문제이므로 여기서는 다루지 않겠다. Docker Container가 아니고 일반 서버라면 systemctl이 잘 동작할 것이다.



참고 사이트 :

  • https://sseungshin.tistory.com/69
  • https://hackersstudy.tistory.com/79
  • https://se34.tistory.com/47

이전글: 리눅스에서 Python 버전 변경 및 yum 에러 해결 다음글: 리눅스에서 백그라운드로 실행하기