인터넷에 나도는 SSH 무인증 접근 방법과 거의 다른 방법은 없으나

차이점은 ESXi Hypervisor 의 sshd_config 에 굳이 손 댈 필요는 없다는 것입니다.

 

[ 필요한 예시 ]

 

FreeNAS 에서 상위의 ESXi 하이퍼바이저로 무인증 명령 ( 보통 esxcli 커맨드명령.. ) 을

보내야 할 때가 있습니다.

 

저는 FreeNAS 에서 iSCSi Target 으로 ESXi 의 소프트웨어 iSCSi Adapter 를 이용하여 Zpool 에서 zvol 을 생성하여

바깥 ESXi 의 다른 VM 머신의 하드디스크로 붙이고 있습니다.

 

그런데 이 경우, 가끔 하이퍼바이저 리부팅을 해 버리면... 어댑터(실제로는 물리 HBA 역할일 것입니다)가

부팅후 별도 리프레시를 해 주지 않으면 제대로 iSCSi 된 디스크들이 인식을 안 하는 경우가 발생합니다.

 

이럴 경우엔 FreeNAS 가 완벽히 올라온 후, 상단의 ESXi 에 리프레시(Rescan) 명령을 보내줘야 정상화될 경우가 있습니다.

고로 이런 경우엔 FreeNAS 의 스케쥴 중에 init command 부분에 원격 명령을 자동으로 때리게 하면 됩니다.

 

이 방법을 이용하려면 일단 FreeNAS 에서 ESXi hypervisor 의 SSH 에 무인증(패스워드 없이) 자동 접근이 가능해야 합니다.

 

[ 무인증 접근하기 ]

 

1. FreeNAS SSH 에서 ssh-keygen 명령을 실행합니다. yes 후에 엔터만 쭉쭉 쳐서 패스워드 없는 인증키를 하나 만듭시다

( id_rsa.pub 파일의 경로를 보아두도록 합니다 )

2. 해당 파일을 scp 로 하이퍼바이저 서버에 복사합니다.  하이퍼바이저 경로는 /etc/ssh/keys-root 디렉토리 안입니다.

건드린 적이 없다면 해당 디렉토리 안에는 이미 authorized_keys 라는 파일이 0 byte 로 있을 텐데요.

일단 복사합니다

scp /경로/id_rsa.pub /하이퍼바이저IP/:/etc/ssh/keys-root

이 때는 당연히 하이퍼바이저 ssh쪽의 루트 로긴 패스워드를 요구할 것입니다

 

3. 하이퍼바이저 서버로 해당 파일이 복사가 됐다면, 거기에서 이제 id_rsa.pub 이름을 authorized_keys 로 바꿔줍니다.

4. 하이퍼바이저 ssh 를 재시작 합니다. ( /etc/init.d/SSH restart )

5. FreeNAS SSH 에서 무인증 접근이 되는지 테스트해 봅시다 ( ssh /하이퍼바이저 IP/ ) - 패스워드 없이 바로 진입되면 성공

 

아주 간단하죠? 참.. ESXi 는 6.0.0 기준 입니다.

 

 

[ FreeNAS 스키쥴에 init command 추가하기 ]

무인증 조건이 선행된 후

GUI 로긴 해서 크론잡 옆의 Init/Shutdown scripts 탭을 클릭한 후 ADD 해 줍니다.

타입은 물론 Command 로, 부팅후 실행되어야 하는 명령어니 조건은 Pre-init 로 해 줍니다.

명령어는 다음과 같습니다

ssh 하이퍼바이저ip esxcli storage core adapter rescan --adapter=vmhba37

제 ESXi 의 software iSCSi Adapter str 가 vmhba37 이기 때문이지요 뭣하면 -all 로 전체검색 하셔도 큰 무리는 없을 듯.

 

이러면 하이퍼바이저 부팅되고, FreeNAS 머신이 올라온 후, ESXi 내부에 HBA 리스캔을 한방 자동으로 때리게 됩니다.

 

(해당 커맨드에서 ssh명령어 빠져 있습니다. 넣어주세요)

 

리스캔한 후 iSCSi 로 디스크를 할당받는 vm들을 수동으로 켜 주는게 좋습니다. ESXi 의 스케쥴에 등록해 두면

디스크 제대로 인식 전에 VM Power on 하려고 시도하다 에러를 뿜을 가능성이 큽니다.

즉, FreeNAS VM 정상 부팅 -> HBA 리스캔 -> iSCSi 디스크 사용하는 VM 들 부팅 순으로 가는게 좋겠지요.

 

VM 머신들의 id 를 찾아서 수동으로 cli 켜 주면 됩니다.

vm ID 는 하이퍼바이저에 ssh root 로 접근하여 다음을 입력해 주면 됩니다.

#vim-cmd vmsvc/getallvms

vm 머신들이 차례대로 출력 되며, 가장 앞에 vmid 라고 표기된 것이 VM id 번호 입니다.

해당 번호로 vm머신들의 파워를 on 시켜주면 됩니다. 물론 반대는 off입니다만 쓸 일이 없지요.

#vim-cmd vmsvc/power.on id

 

위 명령을 Freenas의  init command 에 HBA 리스캔 후열로 차례대로 ssh 로 원격 입력해 주면 됩니다.

sleep 로 조금 지연시간 둔 후에 실행하는 것도 나쁘지 않을지도 모릅니다. ^^

 


 

 

 

 

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,