(PECL ssh2:0.10-0.9)
ssh2_connect — Connexion à un serveur SSH
ssh2_connect() établit une connexion à un serveur SSH distant et retourne une ressource de connexion en cas de succès, FALSE sinon.
methods doit être un tableau associatif avec plus de quatre paramètres, comme décrit ci-dessous.
Tableau 303. methods doit être un tableau associatif avec n'importe quel ou tous les paramètres suivants.
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 cryptage, 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 cryptage, 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.
Tableau 304. client_to_server et server_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 cryptage à 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** |
Crypt and MAC method "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.
Tableau 305. callbackss doit être un tableau associatif contenant n'importe quel ou tous les paramètres suivants.
Index | Signification | Prototype |
---|---|---|
ignore | Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_IGNORE est reçu | void ignore_cb($message) |
debug | Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_DEBUG est reçu | void 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 callback 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çu | void disconnect_cb($reason, $message, $language) |
Exemple 2517. Ouverture d'une connexion forcant 3des-cbc lors de l'envoi de paquets, n'importe quel force aes cipher lors de la réception de paquets, aucune compression dans les deux directions, et change de clés Group1.
<?php
/* Notification à l'utilisateur si le serveur termine la connexion */
function
my_ssh_disconnect
(
$reason
,
$message
,
$language
) {
printf
(
"Le serveur s'est déconnecté avec le code [%d] et le 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(
'Echec de la connexion'
);
?>
Une fois connecté, le client doit vérifier la clé hôte du serveur en utilisant la fonctionssh2_fingerprint() , puis s'identifier en utilisant soit un mot de passe, soit une clé publique.
Voir aussi ssh2_fingerprint() , ssh2_auth_none() , ssh2_auth_password() et ssh2_auth_pubkey_file() .