BUG?: Assigning a Perl script as user shell + sending commands on ssh connect

Brandon Simmons brandon.m.simmons at gmail.com
Fri Jul 27 08:30:03 EST 2007


Hi,
This is sort of a strange issue. But I am experimenting with ways to
have a user log in and be presented with a perl script to interact
with. When I do either or both of the following:

     1) set the user's shell to /usr/bin/myperlscript

     2) specify ForceCommand /usr/bin/myperlscript, applied to my user

...I get strange behavior when a command is appended to the client
connect command in this way:

     ssh -l user 192.168.1.2 ls /etc

The output from the perl script is not printed immediately but waits
for a carriage return from the user before it is printed to the
screen> Here is an example using a test perl script:

     me at computer:~$ ssh -l user 192.168.1.2 /bin/bash
     user at 192.168.1.2's password:
     echo "I'm typing this line while the script seems not to be running"
     here we go!

     enter something:

     YOU SAID: echo "I'm typing this line while the script seems not
to be running"

You can see that what I type is taken as <STDIN> by the script, so I
guess the output is stuck in a buffer somewhere. not sure if this is a
bug in OpenSSH or a perl oddity. Or maybe I really shouldn't be
setting my user's shell to be a script.


More information about the openssh-unix-dev mailing list