2017-03-02 23 views
2

키와 암호가 연결되어 있어야하는 Windows 기반 SFTP 서버에 연결해야합니다.libssh2를 사용하여 키와 암호가 필요한 SFTP 서버에 연결하십시오.

암호 나 키를 연결하는 방법을 알아 냈습니다. 그러나 암호와 키를 연결하는 방법을 알아 냈습니다. 키를 통해

연결 : 사용자와의

//connect to server 
$connection = ssh2_connect($SSH_ipadd, 22, array('hostkey'=>'ssh-rsa,ssh-dss')); 
if(ssh2_auth_pubkey_file($connection, $SSH_user, $SSH_public_key, $SSH_private_key)){ 

    echo "connected successfully."; 

}else{ 

    echo "did not connect correctly."; 

} 

연결은/통과 :

//connect to server via ssh in preperation for sftp 
$connection = ssh2_connect($SSH_ipadd, 22); 

//check connectivity 
if(ssh2_auth_password($connection, $SSH_user, SSH_Password)){ 

     echo "connected successfully."; 

    }else{ 

     echo "did not connect correctly."; 

    } 

하지만 난 한 번에 두 가지를 모두 수행하는 방법을 확실입니다.

내가 암호 키를 인증 한 후, CLI

ssh -i private.key [email protected] 

그것은 나를 메시지를 표시하여 서버에 연결을 시도

. 인증이 완료되면 SFTP 서버에 나를 기록합니다.

이 서비스 유형에 대해 인증하고 파일을 업로드하는 등 PHP를 어떻게 사용합니까?

답변

0

phpseclib 할 수 있습니다. 다음은 v1.0을 사용한 예입니다.

<?php 
include('Net/SSH2.php'); 
include('Crypt/RSA.php'); 

$rsa = new Crypt_RSA(); 
$rsa->loadKey(file_get_contents('...')); 

$ssh = new Net_SSH2('www.domain.tld'); 
if (!$ssh->login('username', 'password', $rsa)) { 
    exit('Login Failed'); 
} 

echo $ssh->exec('pwd'); 
echo $ssh->exec('ls -la'); 
?>