리눅스 서버 ssh 원격접속 설정하기 (root 로그인 허용)

HYEONG HWAN, MUN/ 10월 18, 2018/ 미분류/ 0 comments

기본적으로 리눅스 운영체제가 설치될 때 root 비밀번호를 설정하지 않습니다.
이 경우 root 계정의 비밀번호는 무작위의 충분히 긴 문자열로 설정됩니다.

여러분이 만약 root 비밀번호를 설정할 수 있었다면, 누군가는 비밀번호를 helloworld 나 123456 을 설정했을 것이고 이것은 심각한 문제를 일으킬 것입니다.

아무튼 이런 귀찮은 정책으로 인해서 리눅스의 보안이 더 좋아진 것입니다.
하지만 root 로그인을 못하는 경우, 서버 다루기가 매우 번거롭기 때문에, 다음과 같은 작업이 필요합니다.

 

root 계정 비밀번호 설정 및 원격접속 허용 (Set root account password)

클라우드서버 호스팅 업체마다 기본 제공되는 계정이 다릅니다.
만약 클라우드 호스팅 업체에서 기본으로 제공해주는 계정이 root 이면 이 글의 작업은 이미 적용 된 것이므로 읽을 필요가 없습니다.
기본 제공된 계정이 root 가 아니라면 이 단계를 진행합니다.

< VULTR 클라우드의 경우 root 계정을 제공해 줍니다 >

 

< Amazon EC2 의 경우 ubuntu 라는 관리 계정을 제공해 줍니다 >

 

1] 관리 계정으로 로그인 후 id 정보 확인

# id

sudo 라는 글자만 확인하면 됩니다. (이 계정은 sudo 명령어를 사용할 수 있음)

 

2] 관리 계정에서 root 계정으로 권한 상승

# sudo su

바로 전환될 수도 있고, (sudo 명령어를 사용할 권한이 있는지 확인하기 위해) 현재 계정의 비밀번호를 물어볼 수도 있습니다.

root 사용자 권한으로 su (사용자 전환) 명령어를 실행합니다. root 는 최고관리자 이기 때문에 비밀번호 무시하고 사용자 전환할 수 있습니다.

# id

올바르게 전환 되었는지 확인해 보세요.

 

3] root 계정 비밀번호 설정

# passwd root

명령어 형식 :  # passwd [리눅스 사용자 아이디]
root 사용자는 시스템 최고권한을 가지고 있기 때문에, 자신의 계정 및 다른 계정의 비밀번호를 바꿀 수 있습니다.
영문 숫자 특수문자를 섞어서 만들기를 권장합니다.

 

4] ssh 원격 접속 환경설정 파일 수정

위에서 설정한 비밀번호로 서버에 접속하기 위해 몇가지 설정을 해야 합니다.

vi 에디터를 통해 다음의 파일을 수정하세요.
vi 에디터 사용법을 모른다면 이곳으로 이동 : https://blog.lael.be/post/7321

# vi /etc/ssh/sshd_config

PermitRootLogin : root 사용자의 로그인 허용 여부. (yes, prohibit-password, forced-commands-only, no) 중에서 설정해야 합니다. 설정하지 않으면 prohibit-password 가 됩니다.
yes 로 설정하세요.

PasswordAuthentication : 비밀번호 로그인 허용 여부. (yes, no). 설정하지 않으면 yes 가 됩니다.
yes 로 설정하세요.

ChallengeResponseAuthentication : ChallengeResponse 라는 특이한 인증 허용여부. (yes, no). 설정하지 않으면 yes 가 됩니다.
no 로 설정하세요.

< 이렇게 변경하면 됩니다 >

 

ssh 서비스 재시작

# service sshd reload

 

현재의 root 권한의 Shell 연결을 끊지말고 새로 연결하세요.
root 계정으로 로그인 시도해 봅니다.

 

5] 관리 계정 삭제

새로운 Shell 접속에서 root 로그인이 성공했다면 기존에 연결한 창을 닫습니다.
(또는 exit 명령어를 반복 입력하면 결국에 연결이 끊김)

초기에 생성한 sudo 명령을 사용할 수 있는 계정을 삭제합시다.

만약 최초로 생성한 관리 계정의 아이디가 firstusername 라면 다음의 명령을 실행하여 삭제할 수 있습니다.

# userdel -r firstusername

 

6] 결론

이제 당신은 리눅스 서버에 root 아이디를 사용해서 로그인 할 수 있습니다!

root 는 최고관리자이므로 비밀번호는 충분히 복잡해야 합니다.
클라우드 방화벽을 사용할 수 있다면 tcp 22 번 포트를 적절히 제어하세요. (자신의 IP만 허용하게 설정하거나, 필요 할 때에만 잠시 22번 허용하게 설정.)

클라우드 방화벽이 없더라도 리눅스 자체의 방화벽(iptables)를 사용해서 제어할 수도 있습니다.
iptables 설정 방법은 이곳에 : [[TODO : 글 작성 후 링크할 것]]

Leave a Comment

작성하신 댓글은 관리자의 수동 승인 후 게시됩니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*