우분투(Ubuntu) SSH에서 root계정 사용하기
root계정을 SSH에서 사용하기
서버 버전을 설치하였다면, 원격조작이 필요합니다. 윈도우의 경우에는 원격 제어방법으로 원격 데스크탑을 통해 컴퓨터를 제어할 수 있고, 리눅스의 경우에는 SSH를 통해 원격접속을 합니다. 물론, 데스크탑 버전을 설치하였다면 추가 패키지를 설치해서 원격데스크탑 기능을 사용할 수 있긴 합니다만, 쓸데없는 리소스 낭비를 막기 위해 서버 버전을 설치하였으므로, 원격 제어는 대부분 SSH를 이용해서 이루어 지게 됩니다.
관련 카테고리 : 윈도우 원격제어
하지만 아무런 설정 없이 SSH로 접속하여 root 계정으로 접속하면 퍼미션과 관련해서 로그인이 되지 않습니다. 이번 시간에는 관리가 용이 하도록 SSH에서 root 계정을 사용하는 방법을 알아보도록 하겠습니다.
*경고*
SSH에서는 가급적 보안상의 이유로 root 계정으로 접속하는 것을 활성화 시키기 보다는 "su" 명령어를 이용해서 일시적으로 최고 관리자 권한을 얻는 것이 더 보안상 좋습니다. 만약, 저처럼 귀찮은게 싫은 분들만 설정하길 바랍니다.
SSH 사용하기 |
우분투 서버를 설치하면서 같이 설치하면 좋은 소프트웨어로 SSH 서버를 설치하라고 한적이 있었습니다. 앞으로 소개할 글은 설치가 되었다라는 전제하에서 진행이 됩니다.
관련글 : 우분투 서버 버전 설치하기
만약, OS 설치시 SSH 서버를 설치하지 않았다면 아래와 같은 명령어를 통해서 패키지 설치가 가능합니다.
# apt-get install openssh-server
제대로 설치가 되었는지 확인하고 싶다면 /etc/ssh 디렉터리 안에 sshd_config 파일이 존재하는지 확인하시면 됩니다.
일단 SSH에 대해서 좀 더 알아보자면
시큐어 셸(Secure Shell, SSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다. 기존의 rsh, rlogin, 텔넷 등을 대체하기 위해 설계되었으며, 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공한다. 기본적으로는 22번 포트를 사용한다.- 출처 : 위키
조금 쉽게 설명하자면, 윈도우에서 사용하는 명령프롬프트를 원격으로 사용할 수 있도록 하는 기능입니다. 윈도우에서는 터미널 텔넷이라고 이야기 하는 기능입니다.
한마디로 일일이 서버 컴퓨터를 조작하여 제어하지 않아도 언제 어디서나 서버를 제어할 수 있다는 것이 장점입니다. 또한 SSH 접속의 경우에는 모바일로도 쉽게 접속이 가능하고, SSH 접속 프로그램만 있다면 서버관리를 할 수 있습니다.
다만, 확실하게 말씀드릴 수 있는것은 원격 데스크탑처럼 직관적이지 않아서 명령어를 일일이 외우고 공부를 해야 한다는 단점이 있습니다.
root 계정의 경우 보안상 SSH에서 활성화를 시키지 않는 것이 좋다고 위에서 경고에 적어 놓긴 하였는데, 그래도 root 계정을 활성화 시키는 시장 큰 목적중에 하나는 바로 SFTP를 사용하기 위함입니다.
SSH 설정하기 |
SSH의 설정을 하기 위해서는 root 계정 또는 최고 관리 권한을 획득하고 있어야 합니다.
관련글 : 우분투 root 계정 암호 설정 및 사용하기
일단, 직접 서버에서 조작을 하든지, SSH에서 OS 설치시 만든 계정으로 접속한 후 "su"명령어를 통해서 접속하는 방법이 있습니다.
위와 같은 화면이 나왔다면 아래와 같은 명령어를 입력해서 SSH 설정파일을 로드 합니다.
1 | vi /etc/ssh/sshd_config | cs |
그럼 아래와 같은 설정화면이 나오게 됩니다. vi 에디터를 통해서 설정을 변경하므로 간단하게 vi 명령어정도만 소개를 하면서 설명하도록 하겠습니다.
위의 화살표 있는 부분의 내용을 변경합니다. vi 에디터에서 키보드의 화살표를 이용해서 이동을 하면 됩니다.
1 | PermitRootLogin without-password | cs |
에서 without-password 부분을 yes로 바꿔 줍니다. 이렇게 원하는 내용으로 변경하기 위해서는 vi 에디터의 단축키인 "a"를 누르면 수정(편집모드 - 삽입)이 가능합니다.
1 | PermitRootLogin yes | cs |
이렇게 변경을 하였으면 Esc를 눌러서 편집모드를 종료한 뒤에 :wq 를 입력하고 엔터를 누릅니다. :를 누른뒤에 wq를 입력한다는 이야기는 저장하고 종료하겠다는 뜻입니다.
만약, 설정을 잘못해서 그냥 종료하고 싶다고 하면 : 을 누르고 q!를 입력하면 저장하지 않고 종료합니다.
위에 vi 에디터의 명령어는 모두 대소문자를 구분합니다.
마지막으로 설정을 완료 했으면 ssh 서비스를 재 시작 해줘야 합니다.
1 | # service ssh restart | cs |
꼭 서비스 재시작을 해줘야 정상적으로 ssh에 root 계정을 사용할 수 있습니다.
SSH 접속하기 |
root 계정으로 SSH 접속이 가능하도록 설정하였으니 실제로 접속하여 봅시다. SSH 접속 프로그램으로는 가장 유명한 PuTTy를 사용하도록 하겠습니다.
Host Name에는 접속할 주소를 적습니다.(도메인이든, IP주소든 상관없습니다.)
내부에서 접속하는 경우에는 22번 포트가 개방되어 있을테지만, 외부에서 접속하는 경우에는 반드시 포트포워딩 설정이 되어있는지 (또는 DMZ나 TwinIP)확인하시기 바랍니다.
올바르게 모든 정보를 입력하고 접속을 하면 아래와 같은 경고가 나오는데, 처음 접속하는 서버의 경우 보안을 위해 일종의 "지문"을 남기는 일을 합니다.
그리고 root 계정과 암호를 입력하면
정상적으로 접속이 되는 것을 확인할 수 있습니다.
SSH를 이용해서 정작 제가 가장 많이 쓰는 명령어는 shutdown 이네요. 역시나 대소문자 주의하세요.
전원 종료
1 | shutdown -P now | cs |
재부팅
1 | shutdown -r now | cs |
이제 다음 시간에는 SSH에서 root 계정을 활성시킨 가장 큰 목적이었던 SFTP에 관한 내용을 적도록 하겠습니다.