여러 서버에서 SSH 인증을 테스트해야 합니다. 이 서버의 IP 주소가 ip.txt
파일 에 저장되어 있다고 가정합니다.
저는 Python paramiko
과 모듈을 사용하여 netmiko
비슷한 스크립트를 작성했습니다 .
이제 문제는 Python3이나 인터넷 연결 없이 서버에서 테스트해야 한다는 것입니다.
따라서 여기에서는 타사 도구나 Python 모듈을 설치할 수 없습니다.
expect
, sshpass
또한 사용할 수 없습니다.
사용 가능한 유일한 것은 bash 스크립트입니다. Bash에서만 이 작업을 수행할 수 있습니까? password
SSH로 어떻게 전달합니까 ?
답변1
노력하다SSH_ASKPASS
인간 SSH
...
SSH_ASKPASS
SSH에 비밀번호가 필요한 경우 터미널에서 실행하면 현재 터미널에서 비밀번호를 읽습니다. ssh에 연결된 터미널이 없지만 DISPLAY 및 SSH_ASKPASS가 설정된 경우 SSH_ASKPASS에 지정된 프로그램을 실행하고 X11 창을 열어 비밀번호를 읽습니다. 이는 .xsession 또는 관련 스크립트에서 ssh를 호출할 때 특히 유용합니다. (일부 시스템에서는 이 작업이 작동하려면 /dev/null의 입력을 리디렉션해야 할 수도 있습니다.)
...
$ cat echoPass
echo passwordHere
$ cat sshSession
export SSH_ASKPASS='~/echoPass'
setsid ssh user@server
$./sshSession
user@server:~$ whoami
user
user@server:~$