사용자의 암호 입력을 기다리지 않고 원격지에 ssh 로그인이 가능한 sshpass 패키지를 설치해보고, 간단하게 실습을 진행하여 쉽게 설정하고 사용할 수 있습니다.
사용자의 암호 입력을 기다리지 않고 원격지에 ssh 로그인이 가능한 sshpass 패키지를 설치해보고, 간단하게 실습을 진행하여 쉽게 설정하고 사용할 수 있습니다.
대부분 리눅스 시스템 관리자는 아이디와 비밀번호를 입력하거나 키 기반 인증을 사용하여 ssh를 통해 원격 서버에 로그인합니다. sshpass는 명령 프롬프트 자체에 암호 (비 대화식 암호 인증)를 제공하여 자동화 쉘 스크립트를 사용할 수 있는 편리한 도구입니다.
ssh는 직접 tty를 사용하여 대화식 키보드 사용자가 실제로 비밀번호를 입력하는지 확인합니다. sshpass는 tty에서 ssh를 실행하여 대화형 사용자로부터 암호를 받고 있다고 믿게 함으로써 파일이나 파라미터 값을 지정하여 자동으로 로그인 및 원격 명령을 실행할 수 있습니다.
실습 환경
- 운영 체제(OS) : CentOS 8
- root 계정으로 실행
- IP 설정 및 인터넷이 가능한 환경
sshpass 패키지 설치하기
yum 명령을 사용해서 sshpass 패키지를 설치합니다.
[yum install sshpass -y]
[root@runit.cloud ~]# yum install sshpass -y Last metadata expiration check: 0:38:37 ago on Mon 27 Apr 2020 09:56:14 AM KST. Dependencies resolved. ============================================================================================================================================================================================================================================= Package Architecture Version Repository Size ============================================================================================================================================================================================================================================= Installing: sshpass x86_64 1.06-9.el8 epel 27 k Transaction Summary ============================================================================================================================================================================================================================================= Install 1 Package Total download size: 27 k Installed size: 40 k Downloading Packages: sshpass-1.06-9.el8.x86_64.rpm 83 kB/s | 27 kB 00:00 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 19 kB/s | 27 kB 00:01 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : sshpass-1.06-9.el8.x86_64 1/1 Running scriptlet: sshpass-1.06-9.el8.x86_64 1/1 Verifying : sshpass-1.06-9.el8.x86_64 1/1 Installed: sshpass-1.06-9.el8.x86_64 Complete!
sshpass 명령어 옵션 확인하기
[sshpass -h]
[root@runit.cloud ~]# sshpass -h Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters -f filename Take password to use from file -d number Use number as file descriptor for getting password -p password Provide password as argument (security unwise) -e Password is passed as env-var "SSHPASS" With no parameters - password will be taken from stdin -P prompt Which string should sshpass search for to detect a password prompt -v Be verbose about what you're doing -h Show help (this screen) -V Print version information At most one of -f, -d, -p or -e should be used
ssh 로그인 및 원격 명령 실행하기
sshpass를 사용해서 ssh 로그인하기
다음 명령어를 통해 명령 프롬프트 없이 자동으로 ssh 로그인 할 수 있습니다.
[sshpass -p '비밀번호' ssh '아이디'@'아이피' -o StrictHostKeyChecking=no]
[sshpass -p runit ssh root@192.168.32.250 -o StrictHostKeyChecking=no]
sshpass를 사용해서 원격 명령 실행하기
ssh 로그인 후 배쉬 쉘 명령을 실행 할 수 있습니다.
[sshpass -p runit ssh root@192.168.32.250 -o StrictHostKeyChecking=no 'df -h']
sshpass로 df -h 원격 명령 실행하기 |
마무리
리눅스 서버에서 sshpass를 사용해서 원격 서버에 명령어를 실행시키는 방법에 대해 알아보았습니다.
COMMENTS