Call putty/plink to start a remote SSH linux script with user input
Seemingly simple question, which yields slightly undesired results.
Execute putty to start a script on a remote linux server which requires user input
The remote script does a read -p "Please enter name" NAME
I can use plink
to execute a script over SSH, the following attempts and problems are shown below :-
Note the -load ns
is to load a session that doesnt exist, ie ensure no defaults are used
1) plink.exe -load ns <ip_addr> -l <user> -pw <password> <script path/name>
Problem) Doesn't allow/show user input, ie its non-interactive.
2) Add -t
to allocate a pty :-plink.exe -t -load nc <ip_addr> -l <user> -pw <password> <script path/name>
Problem) Ok, so now the user input can be seen, but I get Ctrl+H (^H) when backspace is pressed, ok if the user doesnt make a mistake!
3) Use putty instead with a saved sessionputty.exe -load "SavedSession"
Problem) (a) Get a new window opened, not a biggy, but not as nice. (b) saved session cannot be easily moved. (c) Get password prompt, cannot provide password like with plink, I know I know, use keys, but this is a closed, private network, and its easier not to bother with keys!
So ideally, I would like the SSH to execute in-line, that is from within the batch file/command line shell I am in, not prompt for username/password, run the linux script and allow prompts and delete/backspace to work.
Many thanks for any ideas/solutions in advance.
Add -t to allocate a pty ... Ok, so now the user input can be seen, but I get Ctrl+H (^H) when backspace is pressed
Make your script run [ -t 0 ] && stty erase ^H
and the Backspace key should be accepted.
An even better solution is to use a port of OpenSSH – for example, that from Cygwin or MinGW – it will give you full terminal emulation as PuTTY does, but keep it in the console window. (The plink tool is designed for raw 8-bit data transfers.)
Edit: A downside of Cygwin might be its lack of IPv6 support (if I remember correctly).
Get password prompt, cannot provide password like with plink
[...] but this is a closed, private network, and its easier not to bother with keys!
And yet you have a problem which setting up keys would solve :)
(I'll feel bad for saying this, but PuTTY also accepts -pw
.)