본문 바로가기

개발관련

디지털 오션 - 우분투에 새 유저 추가 후 ssh 셋팅

할것

서버를 셋팅하면 기본 아이디는 root이다. 보안상 안좋으니 다른 아이디로 바꾸고 ssh 로그인이 되도록 해보자






환경

우분투 16.04





내용

1. 먼저 서버에 접속 후 새 유저를 만든다. 


$ adduser newuser


당연한 이야기지만 여기서 newuser는 본인이 생성하고자 하는 유저의 이름이다. 유저를 생성할때 이것저것 물어보는데 비밀번호만 대충 입력하고 나머지는 킵해도 된다. 








2. 그런다음 새로 만든 유저에 루트 권한을 추가한다.


$ usermod -aG sudo newuser



하는김에 언어 설정을 한다


$ vi /etc/default/locale 


다음 파일을 찾아 아래와 같이 수정한다.(각 행의 마지막칸에 빈칸이 포함되지 않도록 한다)



LANG="en_US.UTF-8"
LANGUAGE="en_US.UTF-8"
LC_ALL="en_US.UTF-8"


그다음 재부팅 한다


$ reboot






3. 다음으로 로컬로 돌아와서 SSH 키를 복사할 차례다. 이게 뭔지 모르면 구글에 "SSH 생성"을 검색하시오.


키를 복사한다.


$ cat ~/.ssh/id_rsa.pub


이러면 뭔가 값이 쭉 나올 것이다. 해당 값을 복사해둔다.






4. 다시 서버로 돌아와 새로 만든 아이디로 로그인 한다.

$ su - newuser







5. 로그인 후 ssh 폴더를 생성 하고 권한을 설정한다.


$ mkdir ~/.ssh
$ chmod 700 ~/.ssh






6. 설정 후 authorized_keys 파일을 생성 후 아까 복사한 키를 복사한다.


$ vi ~/.ssh/authorized_keys


파일을 생성했으면 아까 로컬에서 복사한 ssh 키를 붙여 넣는다.


붙여 넣었으면 해당 파일의 권한을 또 설정해 줘야 한다.



$ chmod 600 ~/.ssh/authorized_keys









7. 마지막으로 루트 계정의 로그인을 막으면 끝

루트 계정은 누구나 다 아는 만인의 아이디이기 때문에 해당 아이디로 로그인 하는 것을 막아야 한다. 원래 대로라면 패스워드 로그인도 제한 하고 SSH 로그인만 허용해야 하는데 디지털 오션을 사용한다면 이미 설정되어 있기때문에 넘어가면 된다.


서버에 접속 후 sshd_config 파일을 수정한다



$ vi /etc/ssh/sshd_config


해당 파일안에 PermitRootLogin 항목을 no로 변경해 주면 된다. (아마 yes로 되어 있을 것이다)




변경 후 


sudo systemctl reload sshd





이제 ssh newuser@111.111.111.111 로 접속이 가능할 것이다!!!




참조 : https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04




PS. 이 작업은 매우 민감한 작업으로 여차하면 루트 로그인도 안되는 수가 있다.

꼭 테스트 서버를 하나 만들어서 작업해 보기를 강력히 추천하는 바이다.

본인도 이거 하면서 3번 서버 삭제함