리눅스 서버 ssh 원격접속 설정하기 (root 로그인 허용)
이 글은 리눅스 서버에서 클라이언트가 ssh 접속을 할 수 있게 허용하는 설정방법에 대해 설명합니다.
* 당신이 리눅스 서버에 ssh 로 연결하는 방법을 알고 싶다면 다음의 글을 참고하세요.
리눅스 명령어 환경으로 원격 접속하는 방법 : https://blog.lael.be/post/7574
기본적으로 리눅스 운영체제가 설치될 때 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 설정 방법은 이곳에 : https://blog.lael.be/post/7982
Pingback: Ubuntu Server 18.04 Initial Setting(2) – Mulmara Press