one of a kind scene

ssh로 비밀번호 없이 접속하기 본문

엔지니어링/Linux 기본

ssh로 비밀번호 없이 접속하기

specialscene 2019. 4. 12. 02:21

[ip주소]

node-master : 192.168.219.113

node1 : 192.168.219.167

node2 : 192.168.56.114

 

[필수 설치 목록]

openssh-server : ssh server 및 client설치(서버가 없으면 다른 머신으로 접속 불가) 

※ server만 설치하고 싶으면 ssh만 설치하면됨 sudo apt-get install ssh

scp : 머신간 파일 전송 가능하게 해줌

sudo apt-get install openssh-server scp

 

[keygen을 활용한 키생성 및 localhost 테스트]

아래 작업은 node-master 머신에서 실행한 것

ssh-keygen -t rsa

정상적을 실행됐다면 위와같은 화면을 볼 수 있음

(Overwrit (y/n)? 은 기존에 키가 있었기때문에 나온 것, 처음 생성한다면 이 경고문은 나오지 않음)

 

~/.ssh 경로로 들어가보면 위와같은 파일들이 있는 것을 볼 수 있다.

파일들에 대한 설명은 생활코딩에서 가져왔습니다(https://opentutorials.org/module/432/3742)

이중에서 public key인 id_rsa.pub를 authorized_keys에 등록해준다

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

이렇게 public key를 등록해주면 localhost에 비번없이 바로 접속가능

= 머신1 -> 머신1에 바로 접속가능(즉, 자기 자신에 접속)

자기 자신에 접속할 일은 없겠지만 이 작업을 통해서 public key가 잘 등록됐는지 확인 가능

 

이제 node-master에서 생성한 public key를 다른 머신의 authorized_keys에 등록하면 다른 머신에서 node-master 접속 가능

 

[ssh 공개키 복사해오기]

1) scp를 활용한 방법 : 직관적으로 이해가 쉬움

형식 : scp [master의 id_rsa.pub위치] [slave1의 username@slave1의 hostname:slave1에 master의 id_rsa.pub을 옮겨둘 경로]

scp $HOME/.ssh/id_rsa.pub hadoop01@192.168.219.167:$HOME/임의의 폴더/id_rsa.pub
cat $HOME/임의의 폴더/id_rsa.pub >> $HOME/.ssh/authorized_keys

2) (추천) ssh-copy-id를 사용한 쉬운 방법

    : master가 node1의 공개키를 가져오고 싶을때 master에서 다음 command를 입력한다

형식 : node1의 계정명@node1의 ip

ssh-copy-id hadoop01@192.168.219.167

 

[다른 머신의 ip 및 hostname 등록해서 활용하기]

sudo vim /etc/hosts

이렇게 hostname과 ip주소까지 등록해주면 아래와 같이 간단하게 다른 머신에 접속할 수 있다

ssh node1