RADIUS サーバーに対して認証する CISCO スイッチに接続する方法を見つけようとしています。これは産業レベルのスイッチではなく、中小企業向けのスイッチです。
私は他のスイッチに phpseclib を使用してきましたが、この特定のスイッチの動作方法にいくつかの違いがあるため、独自のソリューションを展開することを検討しています。
次の基本的なコードがあります。
<?php
echo "attempt connect....<br>";
Try{
$connection = ssh2_connect('10.14.3.45', 22);
var_dump($connection);
echo "attemp ssh2 authorization....<br>";
echo ssh2_auth_password($connection, 'CANNetworkInfra', 'fe8CC+ad4aA9');
exit;
$stream = ssh2_exec($connection, 'show bonjour');
$errorStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
// Enable blocking for both streams
stream_set_blocking($errorStream, true);
stream_set_blocking($stream, true);
// Whichever of the two below commands is listed first will receive its appropriate output. The second command receives nothing
echo "Output: " . stream_get_contents($stream);
echo "Error: " . stream_get_contents($errorStream);
// Close the streams
fclose($errorStream);
fclose($stream);
}
catch (Exception $ex)
{
echo 'doing a var dump:';
var_dump($connection);
}
このコードは、次のエラー メッセージで停止しています。
警告: ssh2_auth_password() [function.ssh2-auth-password]: 10 行目の /var/www/test/customssh.php のパスワードを使用したユーザー名の認証に失敗しました
問題は、スイッチが常に公開鍵を探しているという事実に関係していると思います-RADIUSサーバーに対して認証したいので、これは使用していません。手動で接続すると、次のようになります。
- ターミナル ウィンドウで次のコマンドを実行します: "ssh username@ipaddress"
- スイッチは、/home/username/.ssh/id_rsa のデフォルト フォルダーで公開鍵をチェックします。
- ファイルが見つからないため、スイッチはユーザー名の入力を求めます。もう一度入力します。
- 次に、パスワードの入力を求めます。
- 正しいパスワードを入力すると、接続されます。
スイッチの公開鍵に対するこのチェックを無効にする方法は見つかりませんでした。私の質問は、ssh2_auth_password() 経由でユーザー名を 2 回送信して、手動で接続することをシミュレートできる方法はありますか?
ありがとう。