ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connectConecta-se a um servidor SSH

Descrição

ssh2_connect(
    string $host,
    int $port = 22,
    array $methods = ?,
    array $callbacks = ?
): resource|false

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.

Parâmetros

host

port

methods

methods pode ser um array associativo com até quatro parâmetros, conforme descrito abaixo.

methods pode ser um array associativo com qualquer ou todos dos parâmetros a seguir
Í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.

client_to_server e server_to_client podem ser um array associativo com qualquer um ou todos os seguintes parâmetros
Í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.

Parâmetros de callbacks
Í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)

Valor Retornado

Retorna um recurso em caso de sucesso ou false em caso de erro.

Exemplos

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');
?>

Veja Também