ssh2_connect
(PECL ssh2 >= 0.9.0)
ssh2_connect — Connexion à un serveur SSH
Description
$host
[, int $port
= 22
[, array $methods
[, array $callbacks
]]] )Établit une connexion à un serveur SSH distant.
Une fois connecté, le client doit vérifier la clé hôte du serveur en utilisant la fonction ssh2_fingerprint(), puis s'identifier en utilisant soit un mot de passe, soit une clé publique.
Liste de paramètres
-
host
-
-
port
-
-
methods
-
methods
doit être un tableau associatif avec plus de quatre paramètres, comme décrit ci-dessous.methods
peut contenir n'importe quel ou tous les paramètres suivants.Options de connexion SSH Index Signification Valeurs supportées * kex La liste des méthodes d'échange à annoncer, séparées par une virgule, par ordre de préférence. diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, et diffie-hellman-group-exchange-sha1 hostkey La liste des méthodes de clés d'hôte à annoncer, séparées par une virgule, par ordre de préférence. ssh-rsa et ssh-dss client_to_server Tableau associatif contenant les codes des méthodes de chiffrement, de compression et de messages d'identification (MAC) préférés pour l'envoi des messages depuis le client vers le serveur. server_to_client Tableau associatif contenant les codes des méthodes de chiffrement, de compression et de messages d'identification (MAC) préférés pour l'envoi des messages depuis le serveur vers le client. * - Les valeurs supportées sont dépendantes des méthodes supportées par la bibliothèque. Voir la documentation » libssh2 pour plus d'informations.
client_to_server
etserver_to_client
doivent être un tableau associatif avec n'importe quel ou tous les paramètres suivants.Index Signification Valeurs supportées * crypt Liste des méthodes de chiffrement à annoncer, séparées par une virgule, par ordre de préférence. rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, et none** comp Liste des méthodes de compression à annoncer, séparées par une virgule, par ordre de préférence. zlib et none mac Liste des méthodes MAC à annoncer, séparées par une virgule, par ordre de préférence. hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, et none** Note: Chiffrement et méthode MAC "none"
Pour des raisons de sécurité, none est désactivé par la bibliothèque » libssh2 à moins qu'il soit activé explicitement durant la compilation en utilisant les options appropriées du ./configure. Voir la documentation sur la bibliothèque pour plus d'informations.
-
callbacks
-
callbackss
doit être un tableau associatif contenant n'importe quel ou tous les paramètres suivants.Paramètres de rappel Index Signification Prototype ignore Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_IGNORE
est reçuvoid ignore_cb($message) debug Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_DEBUG
est reçuvoid debug_cb($message, $language, $always_display) macerror Nom de la fonction à appeler lorsqu'un paquet est reçu mais que le code message d'identification échoue. Si le la fonction de rappel retourne TRUE
, l'erreur sera ignorée, sinon, la connexion se terminera.bool macerror_cb($packet) disconnect Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_DISCONNECT
est reçuvoid disconnect_cb($reason, $message, $language)
Valeurs de retour
Retourne une ressource en cas de succès, ou FALSE
si une erreur survient.
Exemples
Exemple #1 Exemple avec ssh2_connect()
<?php
/* Notification à l'utilisateur si le serveur termine la connexion */
function my_ssh_disconnect($reason, $message, $language) {
printf("Server disconnected with reason code [%d] and message: %s\n",
$reason, $message);
}
$methods = array(
'kex' => 'diffie-hellman-group1-sha1',
'client_to_server' => array(
'crypt' => '3des-cbc',
'comp' => 'none'),
'server_to_client' => array(
'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
'comp' => 'none'));
$callbacks = array('disconnect' => 'my_ssh_disconnect');
$connection = ssh2_connect('shell.example.com', 22, $methods, $callbacks);
if (!$connection) die('Échec de la connexion');
?>
Voir aussi
- ssh2_fingerprint() - Récupère l'empreinte d'un serveur distant
- ssh2_auth_none() - Identification en tant que "none"
- ssh2_auth_password() - Identification via SSH en utilisant un mot de passe en clair
- ssh2_auth_pubkey_file() - Identification en utilisant une clé publique