최근 포토로그


[hadoop] Hadoop 클러스터 설정 - ssh Hadoop

출처 : http://harebox.tistory.com/entry/Hadoop-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%84%A4%EC%A0%95-%EA%B8%B0%EB%B3%B8


한동안 손대지 못했던 하둡을 다시 설치해보다 서버 설정에서 약간의 삽질을 했다.
하둡의 문제라기 보다는 편한 운용을 위한 ssh 설정의 문제였음.

1. Hadoop을 실행할 계정과 그룹은 hadoop/hadoop으로 한다.

$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hadoop

2. Hadoop 스크립트가 ssh를 통해 해당 계정으로 자유롭게 접속할 수 있도록 설정한다.

hadoop@cluster01:~$ ssh-keygen -t rsa -P ""
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): <엔터입력>
...
hadoop@cluster01:~$ cd .ssh
hadoop@cluster01:~$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
hadoop@cluster01:~$ ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)? <yes 입력>
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
...

3. 이 때 암호가 설정되어 있지 않은 공개키를 기반으로 자동 접속이 되어야 하는데
자꾸 암호를 물어오는 경우가 있다. 약간의 삽질 끝에 해결한 방법은 다음과 같다.

일단 이러한 문제의 원인으로 발견한 것은 아래의 두 가지이다.
(1) /etc/ssh/sshd_config 설정 문제
(2) .ssh/authorized_keys의 permission 문제

(1)번 문제는 다음과 같이 조치한다.

/etc/ssh/sshd_config 내용에서 다음과 같은 부분을 찾아 고친 후 sshd를 재시작한다.
...
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
...
PermitEmptyPasswords yes

hadoop@cluster01:~$ /etc/init.d/sshd restart

(2)번 문제가 발생하면 접속 시 다음과 같은 메시지를 볼 수 있다.

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,keyboard-interactive)

이는 .ssh/authorized_keys의 group permission에 write 권한이 있는 경우로,
다음과 같이 조치한다.

hadoop@cluster01:~$ chmod g-w .ssh/authorized_keys

위 두 문제를 해결하면 ssh에 관련된 오류가 사라질 것이다.


덧글

댓글 입력 영역