프롬프트에 응답하기 위해 쉘 스크립트를 작성 중입니다. 예를 들어, 파일을 실행하면 실행된 파일이 사용자에게 다음과 같은 메시지를 표시합니다.
비밀번호를 입력 해주세요:
그런 다음 스크립트가 해당 프롬프트에 대한 일부 콘텐츠를 자동으로 넣기를 원합니다.
나는 "기대"가 내가 사용할 수 있는 것임을 이해합니다. 그런데 SSH를 사용하고 있는데 연결하려는 서버에 대한 루트 권한이 없어서 거기에 권한이 없어서 "expect"를 설치할 수 없습니다.
두 가지 옵션이 있습니다. 예상치 못한 프롬프트에 응답할 수 있는 다른 방법이 있습니까? 아니면 SSH 연결 외부의 로컬 컴퓨터에서 스크립트를 실행한 다음 이 SSH 컴퓨터에서 스크립트를 실행할 수 있나요?
비밀번호로 000부터 999까지(및 그 사이의 모든 숫자)를 입력하려고 합니다. 그래서 저는 이 작업을 수행하기 위해 루프를 구축하고 있습니다. (어떻게 하는지는 알지만 프롬프트에 응답하도록 만드는 방법은 모르겠습니다.) 예상한 것 이상으로 할 수 있는 일이 있는지 잘 모르겠습니다. 이 작업을 수행할 수 있는 방법이 있는지 알고 싶습니다.
답변1
Expect를 설치할 필요가 없습니다.서버에서.expect
쉘 스크립트에서 실행하는 대신 Expect 스크립트를 작성하십시오 . Expect 스크립트 자체가 SSH 클라이언트를 생성하고 서버에 연결한 다음 숫자를 반복하게 하세요.
노력을 덜기 위해 서버에 로그인한 세션을 기록하고 를 사용하여 몇 가지 숫자를 시도해 볼 수 있습니다 autoexpect
. 예를 들어 생성된 스크립트를 다른 이름으로 저장 wargame.exp
하고 여기에 루프를 추가합니다. 바라보다https://www.tcl.tk/man/tcl8.5/tutorial/Tcl10.html(스크립트는 Tcl 코드일 것으로 예상됩니다).