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