Expect 명령이 Linux의 프록시 체인에서 작동하지 않습니다.

Expect 명령이 Linux의 프록시 체인에서 작동하지 않습니다.

저는 Expect 명령을 사용하여 암호를 제공하는 작은 스크립트를 작성하고 있습니다. 목적은 스위치에 로그인하여 명령을 받는 것입니다. 운영 체제: RHEL 7. 클라이언트 네트워크에 로그인하기 위한 작은 애플리케이션 프록시체인이 있습니다. 따라서 먼저 이를 열고 명령(ssh 등)을 실행해야 합니다.

예를 들어:

[ram@abcde scripts]$ /usr/bin/proxychains ssh [email protected]
ProxyChains-3.1 (http://proxychains.sf.net)
|S-chain|-<>-129.39.159.150:1080-<>-138.222.124.15:1080-<><>-10.49.99.49:22-<><>-OK
[email protected]'s password: 

Expect를 사용하여 위 작업을 자동화하려고 하므로 다음 스크립트가 있는데 오류가 발생합니다.

set user "admin"
set password "sample123"
/usr/bin/proxychains ssh [email protected]
expect "ssword: "
send "$password\r"
expect ">\r"
send "switchshow\r"
expect eof

다음과 같은 오류가 발생합니다.

[ram@abcde scripts]$ sh br1.sh 
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-E log_file] [-e escape_char]
           [-F configfile] [-I pkcs11] [-i identity_file]
           [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec]
           [-O ctl_cmd] [-o option] [-p port]
           [-Q cipher | cipher-auth | mac | kex | key]
           [-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] [user@]hostname [command]
br1.sh: line 3: ProxyChains-3.1: command not found
couldn't read file "ssword: ": no such file or directory
br1.sh: line 5: send: command not found
couldn't read file ">\r": no such file or directory
br1.sh: line 7: send: command not found
couldn't read file "eof": no such file or directory

답변1

SSH와 함께 SSHPASS를 사용하세요. 통사론:

sshpass -p 'password' ssh user@domain/ip "command"

관련 정보