sshpass 를 이용한 ssh 접속 방법
sshpass는 비대화형으로 ssh 비밀번호를 입력해주는 명령어이다.
우선 sshpass 가 설치되었는지 확인한다.
dpkg -l | grep sshpass
ii sshpass 1.05-1 amd64 Non-interactive ssh
설치가 안되어있다면 apt-get 을 이용하여 설치하자.
sudo apt-get install sshpass
[sudo] password for muabow:
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
sshpass is already the newest version (1.05-1).
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
libexpat1:i386 libmpdec2:i386 libpython3-stdlib:i386 libpython3.5-minimal:i386 libpython3.5-stdlib:i386 libreadline6:i386 libsqlite3-0:i386 libssl1.0.0:i386
Use 'sudo apt autoremove' to remove them.
0개 업그레이드, 0개 새로 설치, 0개 제거 및 30개 업그레이드 안 함.
sshpass 사용 요령은 다음과 같다.
sshpass -p <비밀번호> ssh <계정>@<IP 주소>
그렇다면 192.168.1.100 주소에 비밀번호가 1인 admin 계정으로 로그인하려면 어떻게 할까?
sshpass -p 1 ssh admin@192.168.1.100
하지만 접속이 되지 않을 것이다.
이유는 ssh는 최초 접속 시 상호간에 공개키와 사설 키를 교환하는 과정이 필요하기 때문에 key 교환을 위한 interaction이 존재한다.
ssh admin@192.168.1.100 으로 다시 시도해보자.
ssh admin@192.168.1.100
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:yAwonWyo/Sjnb8rXkvZzpEXvRlI0LlQTlkWa1XPMUa8.
Are you sure you want to continue connecting (yes/no)?
그렇다면 매번 key 교환을 위해 yes 를 하고 sshpass를 써야 할까?
그러한 불편한 행위를 피하기 위해서 ssh의 옵션인 -o StrictHostKeyChecking=no을 사용해보자.
sshpass -p 1 ssh -o StrictHostKeyChecking=no admin@192.168.1.100
Warning: Permanently added '192.168.1.100' (ECDSA) to the list of known hosts.
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Jan 9 07:53:58 1970 from 192.168.1.90
간단하게 접속이 되는 것을 확인할 수 있다.
결론적으로 key 인증을 무시한 sshpass 사용 방법은 다음과 같다.
sshpass -p <비밀번호> ssh -o StrictHostKeyChecking=no <계정>@<IP 주소>
https://linux.die.net/man/1/sshpass
'IT > linux' 카테고리의 다른 글
포트 보안을 위한 서비스 중지 목록 및 방법 (0) | 2021.12.28 |
---|---|
vimrc 공유 / linux vi, vim (0) | 2021.12.28 |
linux wget 을 사용한 간단한 web server alive check 예제와 공유 (0) | 2021.12.22 |
POST 시 수신 측에서 데이터 짤려서 받을 때 (0) | 2021.12.21 |
리눅스 부팅 시 date 가 맞지 않을 때 해결 방법 (0) | 2021.12.20 |
댓글