Search

2017년 1월 8일 일요일

[OS] [Linux] [ssh] 여러 노드 간 비밀번호 없이 접근하기. (SSH Key 만들기)

#1. 들어가기
여러 노드를 이용해 분산처리를 하다보면 ssh를 통해 많은 명령어를 처리하게 된다. 이 때, 매번 패스워드를 입력해야 하는 번거로움을 겪거나, 애플리케이션을 이용 시 Authorization 관련 에러를 만나는 경우가 있다.
이럴 경우 어떻게 해결하는지 알아보자.


#2. 현재 상태 확인
현재 OSKAR01라는 노드에서 martin이라는 아이디를 사용중이라고 가정하자.
커맨드 창에 date 라고 입력하여 날짜를 확인해본다. (아주 잘 된다.)

하지만, 아래처럼 입력하면 어떻게 될까?
[martin@OSKAR01 ~]$ ssh martin@OSKAR01 date
ssh를 통해 내 아이디로 현재 위치에 내가 date 명령어를 수행하겠다는데, 귀찮게 비밀번호를 물어본다..

노드가 한두개라면 불편함을 감수할 수도 있겠지만, 수십대를 관리한다고 생각해보자. 매번 한 줄의 명령어를 실행하기 위해 패스워드를 수십번 입력하는 일은 참으로 번거로울 것이다. 그래서 우리는 마치 열쇠처럼 공개키를 이용해 자유롭게 드나드는 방식을 사용한다.


#3. SSH 공개키 만들기
martin이라는 아이디로 OSKAR01과 OSKAR02라는 노드에 자유롭게 드나들기 위한 공개키를 만드는 상황을 가정해보자.
우선 .ssh 폴더에 들어가서 키를 만든 후,
제대로 생성이 되었는지 확인한 다음,
키를 사용할 노드들에 복사해보자.
[martin@OSKAR01 ~]$ cd .ssh
[martin@OSKAR01 ~]$ ssh-keygen -t rsa
[martin@OSKAR01 ~]$ ls -alh
[martin@OSKAR01 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub martin@OSKAR01
[martin@OSKAR01 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub martin@OSKAR02

다시 한 번 date 명령어를 이용해 테스트 해보자.
[martin@OSKAR01 ~]$ ssh martin@OSKAR01 date
[martin@OSKAR01 ~]$ ssh martin@OSKAR02 date
두 노드에서 비밀번호를 묻지 않고 날짜를 잘 보여준다.



댓글 없음:

댓글 쓰기