(PECL ssh2 >= 0.9.0)
ssh2_connect — Conecta-se a um servidor SSH
$host,$port = 22,$methods = ?,$callbacks = ?Estabelece uma conexão com um servidor SSH remoto.
Uma vez conectado, o cliente deve verificar a chave do host do servidor usando ssh2_fingerprint() e, em seguida, autenticar usando senha ou chave pública.
host
port
methods
methods pode ser um array associativo com até quatro parâmetros,
conforme descrito abaixo.
| Índice | Significado | Valores suportados* |
|---|---|---|
| kex | Lista de métodos de troca de chaves para anunciar, separados por vírgula em ordem de preferência. |
diffie-hellman-group1-sha1,
diffie-hellman-group14-sha1 e
diffie-hellman-group-exchange-sha1
|
| hostkey | Lista de métodos hostkey a serem anunciados, separados por vírgula em ordem de preferência. |
ssh-rsa e
ssh-dss
|
| client_to_server | Array associativo contendo criptografia, compactação e preferências de método de código de autenticação de mensagem (MAC) para mensagens enviadas do cliente para o servidor. | |
| server_to_client | Array associativo contendo criptografia, compactação e preferências de método de código de autenticação de mensagem (MAC) para mensagens enviadas do servidor para o cliente. |
* - Os valores suportados dependem dos métodos suportados pela biblioteca subjacente. Consulte a documentação de » libssh2 para obter informações adicionais.
| Índice | Significado | Valores suportados* |
|---|---|---|
| crypt | Lista de métodos de criptografia para anunciar, separados por vírgula em ordem de preferência. |
rijndael-cbc@lysator.liu.se,
aes256-cbc,
aes192-cbc,
aes128-cbc,
3des-cbc,
blowfish-cbc,
cast128-cbc,
arcfour e
none**
|
| comp | Lista de métodos de compactação para anunciar, separados por vírgula em ordem de preferência. |
zlib e
none
|
| mac | Lista de métodos MAC para anunciar, separados por vírgula em ordem de preferência. |
hmac-sha1,
hmac-sha1-96,
hmac-ripemd160,
hmac-ripemd160@openssh.com e
none**
|
Nota: Método Crypt e MAC "
none"
Por motivos de segurança,
noneé desabilitado pela biblioteca subjacente » libssh2, a menos que seja explicitamente habilitado durante o tempo de compilação usando as opções ./configure apropriadas. Consulte a documentação da biblioteca subjacente para obter mais informações.
callbacks
callbacks pode ser um array associativo com qualquer
ou todos os parâmetros a seguir.
| Índice | Significado | Protótipo |
|---|---|---|
| ignore |
Nome da função a ser chamada quando um
pacote SSH2_MSG_IGNORE é recebido
|
void ignore_cb($message) |
| debug |
Nome da função a ser chamada quando um
pacote SSH2_MSG_DEBUG é recebido
|
void debug_cb($message, $language, $always_display) |
| macerror |
Nome da função a ser chamada quando um pacote é recebido, mas o
código de autenticação da mensagem falhou. Se o retorno de chamada retornar
true, a incompatibilidade será ignorada; caso contrário, a conexão
será encerrada.
|
bool macerror_cb($packet) |
| disconnect |
Nome da função a ser chamada quando um
pacote SSH2_MSG_DISCONNECT é recebido
|
void disconnect_cb($reason, $message, $language) |
Retorna um recurso em caso de sucesso ou false em caso de erro.
Exemplo #1 Exemplo de ssh2_connect()
Abre uma conexão forçando 3des-cbc ao enviar pacotes, cifra aes de força qualquer ao receber pacotes, sem compactação em qualquer direção, e troca de chaves do Grupo 1.
<?php
/* Notifica o usuário se o servidor encerrar a conexão */
function my_ssh_disconnect($reason, $message, $language) {
printf("Servidor desconectado com código de motivo [%d] e mensagem: %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('Falha na conexão');
?>