This function is useful for authenticating website clients against local (or remote) Unix users.
I'd played around with Apache+PAM, various mod_auths and homebrewed shell programs and even NIS, but to authenticate a user against a Unix shadow file fundamentally requires root priviledges, so either your PHP script needs root or an external program needs it's sticky bit set. Both of these have *serious* security implications.
Using SSH, the overhead is obviously going to be greater but you're trusting a root service that's been (and continues to be) really well tested. Just try authing with SSH against localhost (or another host if you want).
ssh2_auth_password
(PECL ssh2 >= 0.9.0)
ssh2_auth_password — Authenticate over SSH using a plain password
설명
bool ssh2_auth_password
( resource $session
, string $username
, string $password
)
Authenticate over SSH using a plain password
인수
- session
-
An SSH connection link identifier, obtained from a call to ssh2_connect().
- username
-
Remote user name.
- password
-
Password for username
반환값
성공할 경우 TRUE를, 실패할 경우 FALSE를 반환합니다.
예제
Example #1 Authenticating with a password
<?php
$connection = ssh2_connect('shell.example.com', 22);
if (ssh2_auth_password($connection, 'username', 'secret')) {
echo "Authentication Successful!\n";
} else {
die('Authentication Failed...');
}
?>
wally at soggysoftware dot co dot uk ¶
6 years ago
noels01 at gmx dot net ¶
7 years ago
Do not try to authenticate or log in more than once on a ssh2 connection. It won't work. You'll need a new connection via ssh2_connect() which will result in a poor performance if you're doing several connects to the same server.
