使用 echo 提供用户名和密码时不要关闭 telnet

pho*_*les 4 login autologin echo telnet

当我向 telnet 提供用户名和密码进行登录时,它会在执行以下命令后自动关闭:

echo password | telnet mymachine -l mysuername
Run Code Online (Sandbox Code Playgroud)

控制台输出:

Connected to mymachine.
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)

然后连接关闭。有没有一种方法可以保持连接,同时仍然一次为登录提供用户名和密码?

更新:我根据接受的答案写了一个别名,每次登录时无需输入用户名和密码:

alias logon='rm loginscript; echo \#\!\/usr\/bin\/expect >> loginscript ; echo spawn telnet remotemachine -l username >> loginscript ; echo expect Password: >> loginscript ; echo send password"\\r" >> loginscript ; echo expect -- \{\$ \} >> loginscript ; echo interact >> loginscript; chmod 777 loginscript; ./loginscript'
Run Code Online (Sandbox Code Playgroud)

meu*_*euh 6

如果要继续交互式会话,通常的方法是使用expect进行登录:

#!/usr/bin/expect
spawn telnet mymachine -l myusername
expect Password:
send password\r
expect -- {$ }
interact
Run Code Online (Sandbox Code Playgroud)