2017-03-02 17 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サーバーにログオンします。

このタイプのサービスに対して認証してファイルをアップロードするにはどうすればよいですか?

答えて

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'); 
?> 
関連する問題