Ubuntu 16.04 는 여기에서!!!

안녕하세요. Flative 의 이재연 입니다.

저는 네고에서 2016년 8월까지 근무를 했으며 이때 네이버 스타트업 지원 사원을 통해 네이버 클라우드 서버 4대를 제공받았습니다. 네이버 클라우드의 기본적인 서버 세팅이 마음에 안들어 쭉 사용을 하던중에 AWS EC2 기본 SSH 설정이 마음에 들었고, 이와 같이 SSH 설정을 했던 경험을 쓰고자합니다.

불편함

1. SSH 세션 유지 시간

기본적인 SSH 세션 시간이 굉장히 짧게 설정되어 있어서 IDE 에서 작업을 하다가 터미널로 돌아와보면 언제나..

2. 매번 쳐야하는 비밀번호

비밀번호를 왜 매번 쳐야하는가.. 귀찮아..

개선 방향

  1. root 권한으로 명령어를 실행할 수 있는 sudo 유저 만들기
  2. SSH 연결시 비밀번호 대신 키파일로 접근하도록 하기
  3. SSH 커넥션이 기~~~~~~~일게 유지되도록 하기

설정 시작

0. 시작전 설명

  1. root 유저만 존재하는 상황부터 시작입니다. 이미 sudo 유저가 존재한다면, 2번부터 따라오시면 됩니다.
  2. 메인 계정은 AWS EC2 와 동일하게 ubuntu 로 합니다. 취향에 따라 바꾸셔도 무방합니다.
  3. 쉘 입력에서 # 을 포함한 설명 까지 복사해서 치셔도 무방합니다.

1. root 권한으로 명령어를 실행할 수 있는 sudo 유저 만들기

사용자는 root 이어야 합니다.

쉘 입력

adduser ubuntu # ubuntu 유저를 생성, 비밀번호는 마음대로 어차피 사용하지 않을겁니다.
export EDITOR=`which vi` # visudo 를 vi 에디터에서 사용하기 위해
visudo # ubuntu 를 sudoer 에 추가

에디터에서

root    ALL=(ALL:ALL) ALL

부분을

root    ALL=(ALL:ALL) ALL
ubuntu  ALL=(ALL) NOPASSWD:ALL

로 수정해주시고 :wq 저장하고 나갑시다.

2-1. 키파일 만들고 등록하기

sudo su ubuntu # ubuntu 사용자로 전환
cd # ubuntu 의 홈폴더로 이동
ssh-keygen -t rsa # 인증에 사용할 키파일 만들기
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 인증된 키로 등록하기
chmod 700 ~/.ssh # 폴더 퍼미션 설정
chmod 600 ~/.ssh/authorized_keys # 폴더 퍼미션 설정
cat ~/.ssh/id_rsa  # 로컬에서 사용할 키파일 내용을 출력

cat 명령어를 통해 출력된 내용중에

중요 : —–BEGIN RSA PRIVATE KEY—– 을 포함하여 —–END RSA PRIVATE KEY—– 까지 복사해주세요.

2-2. 로컬에서 키파일 사용하기

vim keyfile.pem # 키파일 생성

위에서 복사한 내용 그대록 붙여넣기하고 :wq 저장하고 나갑니다. 키파일의 이름 및 저장 위치는 자유롭게 하시면 됩니다.

chmod 400 keyfile.pem # 키파일 퍼미션 설정

3. SSH 커넥션 시간 설정 및 비밀번호 대신 키파일을 사용하도록 설정

사용자는 sudo 권한을 가진 사용자이어야 합니다.

sudo vim /etc/ssh/sshd_config # ssh 데몬 설정 수정

아래의 내용을 입력해줍니다.

참고

  1. ClientAliveInterval, ClientAliveCountMax 은 커넥션 유지 시간을 위한 설정입니다.
  2. PasswordAuthentication no 는 비밀번호 입력을 통한 세션 연결을 막기 위한 설정입니다.
  3. 나머지는 원래 쓰던대로 쓰셔도됩니다.
Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes
ClientAliveInterval 30
ClientAliveCountMax 99999
KeyRegenerationInterval 3600
ServerKeyBits 1024
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile	%h/.ssh/authorized_keys
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes

설정 저장후에는 ssh 데몬을 재시작합니다.

sudo /etc/init.d/ssh restart

참고 : 데몬이 꺼졌다 켜졌다는 문구가 출력이 되지 않는다면, 서버를 재시작해주세요. sudo reboot

4. 로컬에서 서버에 접속해보기

키파일을 통해 서버에 접속해봅시다.

ssh -i keyfile.pem ubuntu@서버주소 # ssh 연결

마치며

해당 글은 단순 설정을 위하여 쓰여진 글입니다. EC2 의 설정 파일을 그대로 복사한 내용이며, 설정의 근거는 검색을 통해 알아보시면 더욱 좋을것 같습니다.

혹시나 문제가 생긴다면.

  1. 서버를 껐다 키세요.
  2. chmod 명령을 잘 치셨는지 확인해보시면 좋을것 같습니다.
  3. 이외에는 메일로!! leejaeduss@gmail.com
이재연's profile image

이재연

2016-09-11

글 더보기