telnetのパスワードの入力の自動化について
自動でtelnetで接続するための下記のスクリプトにおいて
パスワードの自動入力に失敗する理由を知りたく存じます。
手動で「"magic" + リターンキー」でログインできているのですが、
スクリプト上で send "magic\r"と記載しているのに、 Incorrect passwordになるのは
なぜでしょうか。
telnet.sh
#!/usr/bin/expect -f
set address "192.168.10.1"
set port "23"
spawn telnet $address $port
expect "ready" { sleep 5; send "\r"; }
expect "Password" { sleep 5; send "magic\r"; }
expect "$" { sleep 5; send "pof1\r"; }
expect "$" { sleep 5; send "exit\r"; }
expect eof
期待する結果(手動で、パスワードを「magic」と入力)
spawn telnet 192.168.10.1 23
Trying 192.168.10.1...
Connected to 192.168.10.1.
Escape character is '^]'.
220 (Noname) server ready.
Password:
OK
Noname> pof1 220 192.168.10.1 Command OK.
Noname> exit 221 Goodbye.
Connection closed by foreign host.
実行結果
$ ./PWON1.sh
Trying 192.168.10.1...
Connected to 192.168.10.1.
Escape character is '^]'.
220 (Noname) server ready.
Password:
Incorrect password
Incorrect password
\rを\nに変えたところ
hoge$ sudo ./telnet.sh
spawn telnet 192.168.10.1 23
Trying 192.168.10.1...
Connected to 192.168.10.1.
Escape character is '^]'.
220 A (Noname) server ready.
hoge$
ここで終わりました。