Q/A 에 두 NAS 간에
스케쥴러 스크립트로 타겟 NAS의 자동전원종료를 시킬 목적으로 시작했는데
암호없이 제어가 되어야할 필요성이 있어서 인터넷에서 하루 공부하고 알게된 내용을 요약정리한 것입니다.
제가 사용하고 있는 매킨토시에는 터미널앱이 기본 설치되어 있어서
맥기준으로 설명되어 있지만, 윈도우에서는 아래가이드대로 PuttyGen등으로 응용하셔도 무방합니다.
https://dreamholic.tistory.com/111?category=790008
SSH Pub Key를 생성해서 암호없이 접속하는 아래 3가지 방법을 차례로 설명드리겠습니다.
제 메인나스 NAS4, 두번째 백업나스인 NAS5 를 기준으로 설명드립니다.
1. MAC PC -> 시놀로지 NAS4 Passwordless login
2.시놀로지 NAS4 -> 시놀로지 NAS5 Passwordless login
3.SUDO Passwordless login
1. [MAC yousuk-> NAS4 설정 ]
ssh-keygen
( 암호를 입력하라고 하면 빈 상태로 두고 계속 엔터를 입력합니다. 아래 명령어로 Mac 로컬계정 .ssh폴더의 권한 설정을 합니다.)
chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
( 맥 로컬 ~/.ssh 폴더에는 에는 아래처럼 Key 파일이 존재합니다. )
( 맥 로컬에 생성된 PUB KEY 파일인 .ssh/id_rsa.pub 를 NAS 1의 admin2 계정의 .ssh/authorized_keys 파일로 ssh-copy-id 커맨드를 사용해서 복사합니다. )
( 이름만 다를뿐 두 파일의 내용은 같습니다.)
( [Sousce id_rsa.pub file] -> [Target authorized_keys file] copy )
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 32022 admin2@192.168.35.9
( Key 파일 복사후 admin2 폴더와 .ssh 폴더 및 내용의 권한 조정을 합니다.)
chmod 755 /var/services/homes/admin2; chmod 700 /var/services/homes/admin2/.ssh; chmod 600 /var/services/homes/admin2/.ssh/authorized_keys;
(접속시험을 합니다. 처음에 한번만 암호를 묻습니다. 그뒤엔 입력없이 넘어가야 합니다.)
ssh -p 32022 admin2@192.168.35.9
2.[NAS4 admin2 -> NAS5 admin2 설정]
( 맥에서와 마찬가지로 시놀로지 NAS 1 에서도 Key파일을 생성합니다. 과정은 같습니다. ssh폴더의 권한 설정은 이미 위에서 조정했기에 따로 필요없습니다.)
ssh-keygen
(시놀로지에는 SSH-COPY-ID 유틸이 내장되어 있지 않아서 따로 vi 에디터로 내용을 복사해서 만들었습니다.)
(SSH-COPY-ID 를 따로 설치하는 방법은 아래 댓글로 남겼습니다..)
[Sousce id_rsa.pub file] -> [Target authorized_keys file] copy
cat .ssh/id_rsa.pub
(콘솔에 뿌려진 값을 마우스 드래그 하고 클립보드 COPY 해둡니다.)
(NAS5 로 접속합니다)
ssh -p 32022 admin2@192.168.35.11
(.ssh 디렉토리를 생성하고 authorized_keys 파일을 생성합니다.)
mkdir .ssh
cd .ssh
vi authorized_keys
i
(paste clipboard key value)
(press esc key and file save)
:wq!
(마찬가지로 NAS 2에 생성된 디렉토리와 파일들의 권한을 조정합니다.
chmod 755 /var/services/homes/admin2; chmod 700 /var/services/homes/admin2/.ssh; chmod 600 /var/services/homes/admin2/.ssh/authorized_keys;
(NAS4의 .ssh 에는 PC->NAS4 로 접속을 위한 KEY 파일 authorized_keys 와 NAS4->NAS5로 접속을 위한 id_rsa.pub 파일이 둘다 존재하게 됩니다.)
(접속시험을 합니다. 처음에 한번만 암호를 묻습니다. 그뒤엔 입력없이 넘어가야 합니다.)
ssh -p 32022 admin2@192.168.35.11
3. [NAS5 root sudo 설정]
(아래 커맨드를 따로 변경할것 없이 admin2 계정에서 그대로 입력합니다. root의 /etc/sudoers 파일에 암호입력없이 로그인이 되도록 1줄 추가됩니다.)
echo -e "\n$USER ALL=(ALL) NOPASSWD: ALL\n" | sudo tee -a /etc/sudoers
(설정이 잘 적용되었는지 확인합니다)
sudo -l
— 결과로 아래 라인이 더 추가되어 보여야 합니다.
(ALL) NOPASSWD: ALL
(sudo 접속 시험을 합니다.)
sudo -i
--------------------------------------------------
(NAS4 에서 NAS5를 종료시키는데, NAS5 의 admin2 암호입력과정 SUDO 암호입력과정 2가지가 모두 생략되면서 poweroff 명령이 전달됩니다.)
admin2@NAS4:~$ ssh -p 32022 admin2@192.168.35.11 sudo "poweroff"
poweroff 말고도 다양항 응용이 가능할 것 같습니다.
감사합니다.^^
MAC ¿ëÀ̶ó°í µÇ¾î ÀÖÁö¸¸, ½Ã³î·ÎÁö LINUX ¿¡ ¼³Ä¡Çصµ Àß µ¿ÀÛ µÇ´Â±º¿ä.
curl -L https://raw.githubusercontent.com/beautifulcode/ssh-copy-id-for-OSX/master/install.sh | sh
Àü¿ë ½ºÅ©¸³Æ®°¡ ¾øÀ¸¸é SCP·Î Á¢¼ÓÇؼ ÆÄÀÏ ´øÁ®³ÖÀºÈÄ ±ÇÇÑ °íÃĵµ µË´Ï´Ù
±×·±µ¥ admin°°Àº °èÁ¤¸íÀº Àý´ë ºñÃßÀÔ´Ï´Ù