리눅스 개발자 또는 SE 라면 원격으로 항상 터미널에 붙어서 살아야 한다.

그리고 슈퍼유저! root권한으로 참 많은 일을 한다.

 

그런데 말 그래도 이 root 란, 굉장히 많은 권한을 가진 만큼

적(?) 에게 노출되면 굉장히 피를 볼수도 있는 양날의 검 같은 존재이다.

 

root 의 비밀번호를 복잡하게 만들수도 있을 것이고, 

SSH 를 특정 IP 에서만 접속하게 만들수도 있을것이고,

root 를 key 로만 접속하게 만들수도 있겠지만,

 

나는 2차 보안의 갬성으로 ssh 는 사용자 id 로 key 로만 접속하고,

root 는 그후에 접속되도록 하고 싶다.

 

사실 방법은 매우 간단하니까.

 

1) 사용자 계정을 key 로 접속하게 하는 방법은 요기로

 

SSH 공개키 등록하기.

SSH 공개키 등록하기는. client -> server 로 엑세스 할 때 비밀번호를 묻지 않게 할 경우 보통 사용된다. 주로, git/svn 의 Remote Repository 연결, RSync 등의 작업을 SSH 포트를 사용 때, ssh 로 자주 접근해..

www.smarthink.co.kr

 

2) 사용자 계정을 하나 만들고 1)의 진행이 완료 되었다면 아래와 같이 입력하자,
    (ssh_config 가 아니다 sshd_config 다. 두개는 다르다!)

1
$ vim /etc/ssh/sshd_config
cs

 

3) sshd_config 파일 안에서 49번 라인을 보면 PermitRootLogin 이라는 부분 이 있다 이 부분을 no로 바꾼다.
   (:set nu 는 라인 번호는 보는 셋팅이다)

1
2
:set nu
PermitRootLogin    no
cs

 

위와 같이 하고 원격지에서 root 로 접속해 보면 비밀번호로는 절대 접속 할수 없다.

혹시 모르니 새로운 터미널 창을 띄우고 원격지에서 접속을 시도해보자

IDC 센터로 뛰어가는 불상사는 일어나선 안된다!

SSH 공개키 등록하기는.

client -> server 로 엑세스 할 때 비밀번호를 묻지 않게 할 경우 보통 사용된다.


주로, git/svn 의 Remote Repository 연결, RSync 등의 작업을 SSH 포트를 사용 때,

ssh 로 자주 접근해야 되는데 비밀번호 치기가 너무 귀찮을 때

사용된다고 보면 된다.


자, 먼저 Client 에서 공개키를 가지고 온다.

서버의 경우 접속 계정 루트 폴더의 .ssh 폴더 의 .pub 파일이 있을 것이다.

(만약 Client 가 윈도우면 좀 다른 방법으로 가져와야 한다)


윈도우 : 제타위키 매우 잘 설명된 글


만약 .ssh 폴더에 .pub 파일이 없다면,

~/.ssh 폴더에서 ssh-keygen 을 입력하고 엔터를 친다.

엔터는 한번만 치면 안된다. 계속 쳐야한다. 끝났다 싶을때 까지 엔터를 치도록 한다.


그럼 이제 .pub 파일이 생성 되는데,

.pub 파일의 내용을 쭉 복사한다.


내용을 잘 복사했다면, 이제 Server 로 접속한다.

Server 에서 비밀번호 없이 접속하려고 하는 계정으로 로그인한다.

위와 동일하게 ~/.ssh 폴더로 이동한다.


~/.ssh 폴더를 가면 authorized_keys 라는 파일이 있을것이다.

vi 에디터로 열고, 복사한 공개키를 붙여 넣는다.

저장한다.


※ .ssh 폴더의 권한은 755, authorized_keys 파일의 권한은 644 로 한다 


이제 당신은 굳이 비밀번호를 입력하지 않아도

ssh 로 접속할 수 있다.


물론 서버의 authorized_keys 에 공개키가 등록된 클라이언트에 만 이지만...!




  1. 야채호빵v 2018.08.13 09:58 신고

    복붙말고
    cat publicKey.pub > authorized_keys
    라는 고급진 명령어를 쓰는 방법도 있다.

+ Recent posts