sshpass를 사용하여 아이디와 패스워드를 설정한 쉘 스크립트 개발을 통해 원격지에 ssh 접속을 간편하게 할 수 있도록, 실습을 통해 쉽게 설정하고 사용할 수 있습니다.
sshpass 실행 결과 확인 |
sshpass를 사용하여 아이디와 패스워드를 설정한 쉘 스크립트를 통해 원격지에 ssh 접속을 간편하게 할 수 있도록, 실습을 통해 쉽게 설정하고 사용할 수 있습니다.
대량 리눅스 서버에 접속 시 sshpass를 사용한 bash 자동화 스크립트를 통해 간편하게 ssh 로그인 할 수 있습니다.
다중 계정 사용 시 case 사용으로 로그인 및 원격 명령을 실행 할 수 있습니다.
실습 환경
- 운영 체제(OS) : CentOS 8
- sshpass 패키지가 설치되어 있어야 합니다.
- root 계정으로 실행
- IP 설정 및 인터넷이 가능한 환경
사전 작업 참조하기
[리눅스] sshpass를 이용한 ssh 자동 로그인 및 원격 명령 실행하기 참조
실행 스크립트 작성하기
autossh 파일 생성하기
/root/bin 디렉토리를 생성하고, autossh 파일을 작성합니다.
비밀번호에 아이피 끝자리가 포함되어 있는 서버는 LAST_NUM 변수를 사용합니다.
[mkdir /root/bin]
[vi /root/bin/autossh]
아래 코드를 autossh 파일에 붙여넣습니다.
[#!/bin/sh RUN_USER=$(basename ${0}) RUN_ADDR=${1} RUN_PORT=${2:-22} LAST_NUM=${RUN_ADDR##*.} SSH_BIN=/usr/bin/ssh rootpw="비밀번호" apachepw="비밀번호" tomcatpw="비밀번호" mysqlpw=""비밀번호" fassopw="비밀번호" SSHPW="비밀번호${LAST_NUM}" case ${RUN_USER} in root) SSHPASS="${mnt7nspw}" /usr/bin/sshpass -e -- ${SSH_BIN} -p ${RUN_PORT} -l ${RUN_USER} ${RUN_ADDR} -o StrictHostKeyChecking=no ;; apache) SSHPASS="${apachepw}" /usr/bin/sshpass -e -- ${SSH_BIN} -p ${RUN_PORT} -l ${RUN_USER} ${RUN_ADDR} -o StrictHostKeyChecking=no ;; tomcat) SSHPASS="${tomcatpw}" /usr/bin/sshpass -e -- ${SSH_BIN} -p ${RUN_PORT} -l ${RUN_USER} ${RUN_ADDR} -o StrictHostKeyChecking=no ;; mysql) SSHPASS="${mysqlpw}" /usr/bin/sshpass -e -- ${SSH_BIN} -p ${RUN_PORT} -l ${RUN_USER} ${RUN_ADDR} -o StrictHostKeyChecking=no ;; fasoo) SSHPASS="${fasoopw}" /usr/bin/sshpass -e -- ${SSH_BIN} -p ${RUN_PORT} -l ${RUN_USER} ${RUN_ADDR} -o StrictHostKeyChecking=no ;; *) SSHPASS="${SSHPW}" /usr/bin/sshpass -e -- ${SSH_BIN} -t -p ${RUN_PORT} -l ${RUN_USER} ${RUN_ADDR} -o StrictHostKeyChecking=no ;; esac]
파일 권한 설정하기
[chmod 700 /root/bin/autossh]
계정 별 실행 파일 심볼링 링크 설정하기
[ln -s /root/bin/autossh /root/bin/root ln -s /root/bin/autossh /root/bin/apache ln -s /root/bin/autossh /root/bin/tomcat ln -s /root/bin/autossh /root/bin/mysql ln -s /root/bin/autossh /root/bin/fasoo]
sshpass를 사용한 ssh 자동 로그인 확인하기
SSH 로그인 테스트하기
명령어 형식 : ${account} ${ip}
root 192.168.32.250 apache 192.168.32.250 tomcat 192.168.32.250 mysql 192.168.32.250 fasoo 192.168.32.250
마무리
sshpass를 사용해서 ssh 자동 로그인 설정 방법에 대해 알아보았습니다.
bash shell script를 통해서 여러 계정의 ssh 자동 로그인을 사용할 수 있습니다.
COMMENTS