SSH2 ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connect — SSH 서버에 연결


설명

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

원격 SSH 서버에 대한 연결을 설정합니다.

연결되면 클라이언트는 ssh2_fingerprint()를 사용하여 서버의 호스트 키를 확인한 다음 암호 또는 공개 키를 사용하여 인증해야 합니다.


매개변수

host
port
methods
methods는 아래에 설명된 대로 최대 4개의 매개변수가 있는 연관 배열일 수 있습니다.

methods는 다음 매개변수 중 일부 또는 모두가 있는 연관 배열일 수 있습니다.

Index Meaning Supported Values*
kex 광고할 키 교환 메서드 목록입니다. 선호도에 따라 쉼표로 구분됩니다. diffie-hellman-group1-sha1, diffie-hellman-group14-sha1diffie-hellman-group-exchange-sha1
hostkey 광고할 호스트 키 메서드 목록, 선호도에 따라 쉼표로 구분. ssh-rsassh-dss
client_to_server 클라이언트에서 서버로 전송되는 메시지에 대한 암호화, 압축 및 메시지 인증 코드(MAC) 메서드 기본 설정을 포함하는 연관 배열입니다.  
server_to_client 서버에서 클라이언트로 전송되는 메시지에 대한 암호화, 압축 및 MAC(메시지 인증 코드) 메서드 기본 설정을 포함하는 연관 배열입니다.  

* - 지원되는 값은 기본 라이브러리에서 지원하는 메서드에 따라 다릅니다. 추가 정보는 » libssh2 문서를 참조하세요.

client_to_serverserver_to_client는 다음 매개변수 중 일부 또는 모두가 있는 연관 배열일 수 있습니다.

Index Meaning Supported Values*
crypt 광고할 암호화 메서드 목록, 선호도 순서대로 쉼표로 구분. rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfournone**
comp 광고할 압축 메서드 목록입니다. 선호도에 따라 쉼표로 구분됩니다. zlibnone
mac 보급할 MAC 메서드의 목록이며, 선호도 순서대로 쉼표로 구분됩니다. hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.comnone**
참고: 암호화 및 MAC 메서드 "none"

보안상의 이유로 적절한 ./configure 옵션을 사용하여 빌드 시간 동안 명시적으로 활성화하지 않는 한 기본 » libssh2 라이브러리에서 비활성화되지 않습니다. 자세한 내용은 기본 라이브러리에 대한 설명서를 참조하십시오.

callbacks
callbacks은 다음 매개변수 중 일부 또는 전부가 포함된 연관 배열일 수 있습니다.

콜백 매개변수

Index Meaning Prototype
ignore SSH2_MSG_IGNORE 패킷 수신 시 호출할 함수 이름 void ignore_cb($message)
debug SSH2_MSG_DEBUG 패킷 수신 시 호출할 함수 이름 void debug_cb($message, $language, $always_display)
macerror 패킷을 수신했지만 메시지 인증 코드에 실패했을 때 호출할 함수의 이름입니다. 콜백이 true를 반환하면 불일치가 무시되고, 그렇지 않으면 연결이 종료됩니다. bool macerror_cb($packet)
disconnect SSH2_MSG_DISCONNECT 패킷 수신 시 호출할 함수 이름 void disconnect_cb($reason, $message, $language)

반환 값

성공 시 리소스를 반환하고 오류 시 false를 반환합니다.


Examples

예제 #1 ssh2_connect() 예제

패킷을 보낼 때 3des-cbc를 강제로 연결을 열고, 패킷을 받을 때 모든 강도 aes cipher를 열고, 어느 방향으로도 압축하지 않고, Group1 키를 교환합니다.

                  
<?php
/* Notify the user if the server terminates the connection */
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('Connection failed');
?>
                  
                

기타