Re: [BUG?] sftp is echoing back prompt and commands in batch mode

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

 



I don't see it as a bug. As if I'm writing a batch script I want to see the echo of the command and the output so if there is a failure I know where the failure is.

I could see adding a mode not to echo back the command or prompt. But it isn't a bug to me.

Ben



Vincenzo Romano wrote:
Thanks, Iain.
I am willing to hear from other users whether anyone else sees this as a
bug before filing it.


--
Vincenzo Romano

Il giorno ven 2 nov 2018, 20:03 Iain Morgan<imorgan@xxxxxxxxxxxx>  ha
scritto:

If you truly intend this as a bug report, you should file it at
bugzilla.mindrot.org.

On Fri, Nov 02, 2018 at 12:25:22 +0100, Vincenzo Romano wrote:
Short description: All comands sent to server in batch mode are being
echoed back along with prompt.
Software Version: "OpenSSH_7.9p1, OpenSSL 1.1.1  11 Sep 2018" (as
printed by ssh -V)
Server and client systems: ArchLinux x86_64 fully updated as of
2018-11-02.
## How to reproduce

Provided that you have proper SSH key authentication in place, from
command line run:
echo "dir /var" | sftp -b - 0

## Expected output

/var/backups    /var/cache      /var/lib        /var/local      /var/lock
/var/log        /var/mail       /var/opt        /var/puppet     /var/run
/var/spool      /var/tmp        /var/www

## Actual output

sftp>  dir /var
/var/backups    /var/cache      /var/lib        /var/local      /var/lock
/var/log        /var/mail       /var/opt        /var/puppet     /var/run
/var/spool      /var/tmp        /var/www

Please note the first line is the server prompt followed by the command
echo.
## Workaround

Expunge the first line from the client output
echo "dir /var" | sftp -b - 0 | tail -n +2

## Notes
Batch mode is meant for script automation, not human operations, so
echoing the prompt and the commands doesn't make any sense and creates
problems while processing the output.
A possible solution that's also backward compatible with all scripts
using batch mode is to allow for a special prefix character to
commands to avoid any echoing, just like the "-" is used to avoid a
single failing command to terminate the client. Something like "@" or
"#" would be ok IMHO.

--
Vincenzo Romano - NotOrAnd.IT
Information Technologies
--
NON QVIETIS MARIBVS NAVTA PERITVS
_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@xxxxxxxxxxx
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev
--
Iain Morgan


Il giorno ven 2 nov 2018, 20:03 Iain Morgan<imorgan@xxxxxxxxxxxx>  ha
scritto:

If you truly intend this as a bug report, you should file it at
bugzilla.mindrot.org.

On Fri, Nov 02, 2018 at 12:25:22 +0100, Vincenzo Romano wrote:
Short description: All comands sent to server in batch mode are being
echoed back along with prompt.
Software Version: "OpenSSH_7.9p1, OpenSSL 1.1.1  11 Sep 2018" (as
printed by ssh -V)
Server and client systems: ArchLinux x86_64 fully updated as of
2018-11-02.
## How to reproduce

Provided that you have proper SSH key authentication in place, from
command line run:
echo "dir /var" | sftp -b - 0

## Expected output

/var/backups    /var/cache      /var/lib        /var/local      /var/lock
/var/log        /var/mail       /var/opt        /var/puppet     /var/run
/var/spool      /var/tmp        /var/www

## Actual output

sftp>  dir /var
/var/backups    /var/cache      /var/lib        /var/local      /var/lock
/var/log        /var/mail       /var/opt        /var/puppet     /var/run
/var/spool      /var/tmp        /var/www

Please note the first line is the server prompt followed by the command
echo.
## Workaround

Expunge the first line from the client output
echo "dir /var" | sftp -b - 0 | tail -n +2

## Notes
Batch mode is meant for script automation, not human operations, so
echoing the prompt and the commands doesn't make any sense and creates
problems while processing the output.
A possible solution that's also backward compatible with all scripts
using batch mode is to allow for a special prefix character to
commands to avoid any echoing, just like the "-" is used to avoid a
single failing command to terminate the client. Something like "@" or
"#" would be ok IMHO.

--
Vincenzo Romano - NotOrAnd.IT
Information Technologies
--
NON QVIETIS MARIBVS NAVTA PERITVS
_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@xxxxxxxxxxx
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev
--
Iain Morgan

_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@xxxxxxxxxxx
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev

_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@xxxxxxxxxxx
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev



[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux