This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: sshd - sftp problem (perl demo)



On 07/26/2010 10:36 PM, Sisyphus wrote:
Hi,

I have the following perl script that attempts to connect (from native Windows) to an sshd server (either localhost, which is a Cygwin sshd server, or a remote linux host)
and create a Net::SSH2::SFTP object.


###############################
use warnings;
use Net::SSH2;

my ($host, $user, $pass) = qw(blah blah blah);

my $ssh2 = Net::SSH2->new;
die "can't connect" unless $ssh2->connect($host);

print "Connected\n";

die "can't authenticate"
unless $ssh2->auth(username => $user,
                   password => $pass);

print "Authenticated\n";

my $sftp = $ssh2->sftp;
print $sftp, "\n"; # Line 19

$ssh2->disconnect();
###############################

Works fine when connecting to the sshd server on the remote linux box. The script
then outputs:


C:\_32\pscrpt\net-ssh2>perl cygwin.pl
Connected
Authenticated
Net::SSH2::SFTP=SCALAR(0x2a92594)

But when I modify the script to connect to the Cygwin sshd server I get:

C:\_32\pscrpt\net-ssh2>perl cygwin.pl
Connected
Authenticated
Use of uninitialized value $sftp in print at cygwin.pl line 19.

No problem with the connection or the authentication, but the call to
$ssh2->sftp is clearly failing.
Have you ever heard of the Perl debugger? Simply start your script with perl -d <script> and wham you're in it! Then you don't have to be telling us things like line 19 and you can set a break point at line 19 and examine variables, etc. Actually there are tons of things you can do and if you plan on working with Perl at all it behooves you to look into the debugger.

That said, my first thought is, well obviously the sftpd is configured a lot better on the Linux system than it is on your Cygwin system. My second thought is - why are you even bothering with sftp? Just use scp.
First thing that comes to mind is that I might need to install/run something
additional for SFTP to be enabled on Cygwin. All I've done is install
cygrunsrv and openssh, and then start the openssh server with 'net start
sshd'. Did I miss something ?
Have you tried actually using the sftp command at a command line prompt?
Second thing that comes to mind is that connecting via user cyg_server (using the password I created when I ran 'ssh-host-config -y') might not be the right thing to do. Is it ?

Third thing that comes to mind is that it might be permissions related.

Advice welcome.

I'm also unable to upload files to the Cygwin installation using SCP. (Again, no problems with SCP when connected to the remote linux box.)
So again I ask you, if you can scp remotehost:/path/file to localhost:/path/file why do you care about using sftp?

Regarding your other post where you say you mean "scp is scp over ssh" that's a pretty meaningless statement. Of course scp is *cp* over ssh, that's why it's called *s*cp!
--
Andrew DeFaria <http://defaria.com>
As the shopper placed her groceries on the checkout stand, the bagger asked her paper or plastic? Doesn't matter, she replied, I'm bisackual.



-- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]