ssh2_auth_password

(PECL ssh2 >= 0.9.0)

ssh2_auth_password使用明文密码进行 SSH 身份验证

描述

ssh2_auth_password(resource $session, string $username, string $password): bool

使用明文密码进行 SSH 身份验证。从版本 0.12 开始,此函数也支持 keyboard_interactive 方法。

参数

session

从调用 ssh2_connect() 获得的 SSH 连接链接标识符。

username

远程用户名。

password

username 的密码

返回值

成功时返回 true,失败时返回 false

示例

示例 #1 使用密码进行身份验证

<?php
$connection
= ssh2_connect('shell.example.com', 22);

if (
ssh2_auth_password($connection, 'username', 'secret')) {
echo
"Authentication Successful!\n";
} else {
die(
'Authentication Failed...');
}
?>

添加笔记

用户贡献笔记 3 个笔记

0
sgchris at gmail dot com
9 年前
请注意,函数 ssh2_auth_password 在身份验证失败时会引发 PHP 警告 (!) 。要避免此警告,请使用“沉默” (“@”) 运算符。

<?php
$ssh
= ssh2_connect($host);
if (
false === $ssh) {
die(
'connection failed');
}

$auth = @ssh2_auth_password($ssh, $user, $password);
if (
false === $auth) {
die(
'authentication failed');
}
?>
-13
wally at soggysoftware dot co dot uk
17 年前
此函数可用于将网站客户端身份验证到本地(或远程)Unix 用户。

我尝试过 Apache+PAM、各种 mod_auth 和自制 shell 程序,甚至 NIS,但要将用户身份验证到 Unix shadow 文件,从根本上说需要 root 权限,因此您的 PHP 脚本需要 root 权限或外部程序需要设置其粘性位。两者都具有 *严重* 的安全隐患。

使用 SSH,开销显然会更大,但您信任的是经过(并持续)严格测试的 root 服务。只需尝试使用 SSH 针对 localhost(或另一个主机,如果您愿意)进行身份验证。
-17
noels01 at gmx dot net
18 年前
不要尝试在 SSH2 连接上进行多次身份验证或登录。它不会工作。您将需要通过 ssh2_connect() 进行新的连接,如果您对同一服务器进行多次连接,这将导致性能下降。
To Top