connect to a server via sftp php
Solution 1
You might have an easier time using phpseclib, a pure PHP SFTP client. Here's an example:
<?php
include('Net/SFTP.php');
$sftp = new Net_SFTP('www.domain.tld');
if (!$sftp->login('username', 'password')) {
exit('Login Failed');
}
echo $sftp->pwd() . "\r\n";
$sftp->put('filename.ext', 'hello, world!');
print_r($sftp->nlist());
?>
The problem with libssh2, as everyone's recommending, is that it's not very widely deployed, it's API isn't exactly the most reliable, it's unreliable, poorly supported, etc.
Solution 2
Do you have an apache server installed? for example: xampp?
If you do then you have use the FTP function:
<?php
$connection = ssh2_connect('ftp.server.com', 22); //port 22 for Shell connections
ssh2_auth_password($connection, 'username', 'password');
$shell_ftp = ssh2_sftp($connection);
$connectionStream = fopen('ssh2.sftp://'.$shell_ftp.'/path/to/fileorfolder', 'r');
if(!connectionStream)
{
echo "Could not connect to the server, please try agian";
}
else
{
echo "Successfully logged in.";
}
?>
That the basic Shell FTP connection, you must define absolute path's to file's or folders.
Solution 3
will this help?
<?php
$connection = ssh2_connect('ftp.server.com', 22);
if (ssh2_auth_password($connection, 'username', 'password'))
echo "Authentication success";
else
echo "Authentication failure";
?>
Akhil K Nambiar
A BTech Graduate with 9+yrs expirence in Java and a die hard developer and open source fan.
Updated on July 03, 2022Comments
-
Akhil K Nambiar almost 2 years
how do we connect to a remote server via sftp to verify if the login details are valid in php...
i'm using apache server... my use is to check whether the login details entered by user is correct or not.
-
Elzo Valugi over 13 yearsThis is better than my answer.
-
Akhil K Nambiar over 13 yearshow do u know that the connection is successfull or not... thr wont be any file operations... only need to verify user name and password...
-
Akhil K Nambiar over 13 yearsi don't need this line $connectionStream = fopen('ssh2.sftp://'.$shell_ftp.'/path/to/fileorfolder', 'r') also for testing I'm using a server with port number 2275. will that be a problem. cause it gives error Error starting up SSH connection(-1): Failed sending banner
-
Wesley over 13 yearsWell, if you want to check if the login is valid. then you will be needed that line to check if the $connectStream is open or closed, also it would be better to use port 22 for shell.