개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.13 01:42

ssh2_publickey_list 함수 이해를 부탁드립니다.

목록
  • PWA전도사 3시간 전 2025.08.13 01:42 새글
  • 1
    1
저는 ssh2_publickey_list 함수를 사용하여 SSH 키 목록을 가져오려고 하는데, 이 함수의 인자 중 'type'을 'ssh-rsa'로 설정했을 때 왜 ssh-rsa 키가 표시되지 않는지 이해를 못하겠습니다.

이 함수는 ssh-rsa 키를 모두 가져오지 않는 것인지, 아니면 ssh-rsa 키가 실제로 없을 때가 아닌 다른 이유로 표시되지 않는지 궁금합니다.
ssh-rsa 키를 모두 가져오기 위해 다른 인자를 설정해야 하나요?

아래의 예시를 통해 ssh-rsa 키를 가져오지 못하는 이유를 알려주시면 감사하겠습니다.

php

$ssh = new SSH2('example.com');

if (!$ssh->login('username', 'password')) {

    die('Login Failed');

}

$keys = $ssh->exec('ssh2_publickey_list');

print_r($keys);


    댓글목록

    profile_image
    나우호스팅  3시간 전



    ssh2_publickey_list 함수는 SSH 서버의 모든 공개 키 목록을 가져올 수 있습니다. 이 함수의 인자 중 'type'을 'ssh-rsa'로 설정했을 때 ssh-rsa 키가 표시되지 않는 이유는 두 가지가 있습니다.

    첫 번째 이유는 ssh2_publickey_list 함수가 SSH 서버의 모든 공개 키 목록을 가져올 수 있지만, 'type' 인자를 사용하여 특정 키 유형을 필터링할 수 있습니다. 'type' 인자를 'ssh-rsa'로 설정하면 ssh2_publickey_list 함수는 ssh-rsa 키만 가져올 것입니다. 그러나 만약 ssh-rsa 키가 없다면, 이 함수는 빈 배열을 반환할 것입니다.

    두 번째 이유는 ssh2_publickey_list 함수가 SSH 서버의 공개 키 목록을 가져올 때, 키 유형이 'ssh-rsa'로 표시되지 않을 수 있습니다. 예를 들어, ssh-rsa 키가 'rsa-sha2-256'로 표시될 수 있습니다. 이 경우, 'type' 인자를 'ssh-rsa'로 설정하면 ssh-rsa 키가 표시되지 않을 것입니다.

    ssh-rsa 키를 모두 가져오기 위해서는 'type' 인자를 null로 설정하거나, 'type' 인자를 'all'로 설정하는 것이 좋습니다. 'type' 인자를 null로 설정하면 ssh2_publickey_list 함수는 모든 키 유형을 가져올 것입니다. 'type' 인자를 'all'로 설정하면 ssh2_publickey_list 함수는 모든 키 유형을 가져올 것입니다.

    예를 들어, 다음과 같이 코드를 수정할 수 있습니다.

    php
    
    $ssh = new SSH2('example.com');
    
    if (!$ssh->login('username', 'password')) {
    
        die('Login Failed');
    
    }
    
    $keys = $ssh->exec('ssh2_publickey_list');
    
    print_r($keys);
    
    


    또는

    php
    
    $ssh = new SSH2('example.com');
    
    if (!$ssh->login('username', 'password')) {
    
        die('Login Failed');
    
    }
    
    $keys = $ssh->exec('ssh2_publickey_list');
    
    $keys = array_filter($keys, function($key) {
    
        return $key['type'] == 'ssh-rsa';
    
    });
    
    print_r($keys);
    
    


    이러한 코드를 사용하면 ssh-rsa 키를 모두 가져올 수 있습니다.

    2025-08-13 01:43

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 43,700건 / 1 페이지

검색

게시물 검색