미운 오리 새끼의 우아한 개발자되기

[AWS]ubuntu EC2에 새로운 사용자 추가하고 비밀번호로 접속 가능하게 하기 본문

Cloud/AWS

[AWS]ubuntu EC2에 새로운 사용자 추가하고 비밀번호로 접속 가능하게 하기

Serina_Heo 2021. 6. 20. 16:46

aws ubuntu ec2를 생성하면 기본적으로 있는 사용자가 ubuntu, root 계정이다.

여기에 appAdmin이라는 이름의 사용자를 추가해보기로 하자.

 

1. root 사용자로 접속하여 (su - 명령어 입력 ) adduser appAdmin 명령어를 입력한다. appAdmin 대신 본인이 사용하고자 하는 user 이름을 입력해주면 되겠다.

root@ip-172-31-3-41:~# adduser appAdmin

그러면 아래와 같이 경고가 뜨면서 명령어가 실패한 것을 알 수 있다.

adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX[_SYSTEM] configuration variable.  Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.

이는 user 이름이 regex와 맞지않다고 뜨는 경고이다. regex에 굳이 맞추고 싶지않으면 아래 명령어를 다시 입력하면 user가 추가된 것을 알 수 있을 것이다.

root@ip-172-31-3-41:~# adduser --force-badname appAdmin

Allowing use of questionable username.
Adding user `appAdmin' ...
Adding new group `appAdmin' (1001) ...
Adding new user `appAdmin' (1001) with group `appAdmin' ...
Creating home directory `/home/appAdmin' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for appAdmin
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []:
Is the information correct? [Y/n] Y

 

위의 information은 굳이 쓰지않아도 됨. 

 

2.이제 appAdmin의 password를 설정하기 위해 passwd appAdmin 명령어를 입력한다.

root@ip-172-31-3-41:~# passwd appAdmin
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

 

3. 그리고 appAdmin에 root 계정과 같은 권한을 줘보자. 

visudo 명령어를 입력한다.

root@ip-172-31-3-41:~# visudo

그러면 nano 편집기로 /etc/sudors.tmp 파일이 열릴것이다. 

# User privilege specification 주석 아래에 root 계정의 privilege가 선언되어있을 것이고. 

그 아랫줄에 appAdmin ALL=(ALL:ALL) ALL이라고 한줄을 추가해주면

appAdmin도 root와 같은 privilege를 가지게 될 것이다. 

control + o를 누르면 파일이 저장될 것이다.

 

4. 이제 비밀번호로 접속이 가능하게 하기위해 /etc/ssh/sshd_config 파일을 수정해보자.

vi ssh_config 명령어를 입력하면 vi 편집기로 sshd_config 파일을 수정할 수 있다. 

root@ip-172-31-3-41:/etc/ssh:~# vi /etc/ssh/sshd_config

 PasswordAuthentication을 no -> yes 로 바꾼다

/Password 로 PasswordAuthentication 한 줄을 찾아주고 i 를 입력해서 Insert 모드로 들어간다.

주석이 걸려있으면 풀어주고, no라고 되어있으면 no 대신에 yes로 써준 후에 

esc를 누르고 :wq! 를 입력한다.

 

6. 이제 ubuntu계정과 appAdmin 계정이 같은 key pair로 로그인이 가능하게 하기 위하여

/home/ubuntu 아래에 .ssh 디렉토리를 /home/appAdmin에 복사해야한다.

(이 과정은 password로만 서버에 접속하게 하기 위한 과정과는 무관하다. 최조에 ubuntu 계정으로 접속하기 위해 사용한 ppk (private key pair)를 appAdmin도 같은 키로 사용하여 로그인하도록 하기 위한 과정이다) 

cp -r /home/ubuntu/.ssh /home/appAdmin/.ssh 명령어를 입력한다.

(-r 옵션을 주면 하위의 디렉토리까지 모두 복사가 가능하다. /home/appAdmin 아래에 authorized_keys 가 잘 복사되었는 지 확인하자.)

 

7. 복사한 key pair를 appAdmin 소유권, 그룹으로 바꿔준다.

chown -R appAdmin:appAdmin /home/appAdmin/.ssh 명령어를 입력한다.

root@ip-172-31-3-41:/home/appAdmin# chown -R appAdmin:appAdmin /home/appAdmin/.ssh

해당 명령어로 root:root (소유권자:그룹) -> appAdmin:appAdmin으로 변경되었음을 확인 할 수 있을 것이다.

 

8. service를 재시작하여 변경된 설정파일들이 적용되도록 service ssh restart 명령어를 입력하자.

root@ip-172-31-3-41:/home/appAdmin# service sshd restart

 

터미널 창을 껐다가 appAdmin 계정, 비밀번호로 접속하면 접속이 가능한 것을 확인 할 수 있다!