개발자 Q&A

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

2025.04.27 03:48

ssh2_publickey_list 관련 질문

목록
  • 깃허브매니아 1일 전 2025.04.27 03:48
  • 6
    1
저는 PHP를 사용하여 SSH 연결을 구현 중인데, ssh2_publickey_list 함수에 대한 이해가 부족합니다. 이 함수는 SSH 서버의 인증 키 목록을 반환하도록 설계되었습니다. 하지만 이 함수를 사용하여 인증 키 목록을 가져올 때, 일부 키가 잘못된 형식으로 반환되는 것을 관찰했습니다.

ssh2_publickey_list 함수가 잘못된 인증 키를 반환하는 이유는 무엇이며, 이 문제를 해결하는 방법은 무엇인가요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    ssh2_publickey_list 함수는 SSH 서버의 인증 키 목록을 반환하는 함수입니다. 하지만 이 함수를 사용하여 인증 키 목록을 가져올 때, 일부 키가 잘못된 형식으로 반환되는 것을 관찰할 수 있습니다.

    이러한 문제의 원인은 SSH 서버의 인증 키 목록이 잘못된 형식으로 저장된 경우입니다. SSH 서버의 인증 키 목록은 OpenSSH 서버에서 사용하는 PEM 형식의 키 목록으로 저장됩니다. 하지만 ssh2_publickey_list 함수는 이 PEM 형식의 키 목록을 읽을 수 없을 때, 잘못된 형식의 키 목록을 반환할 수 있습니다.

    이 문제를 해결하는 방법은 다음과 같습니다.

    1. SSH 서버의 인증 키 목록이 잘못된 형식으로 저장되지 않도록 확인합니다.
    2. ssh2_publickey_list 함수를 사용할 때, PEM 형식의 키 목록을 읽을 수 있도록 설정합니다.
    3. 잘못된 형식의 키 목록을 필터링하거나 제거합니다.

    예를 들어, SSH 서버의 인증 키 목록이 잘못된 형식으로 저장되지 않도록 확인할 수 있습니다. SSH 서버의 인증 키 목록을 PEM 형식으로 저장하려면, SSH 서버의 OpenSSH 구성 파일(/etc/ssh/sshd_config)에 다음 설정을 추가합니다.

    #hostingforum.kr
    
    
    PubkeyAuthentication yes
    
    AuthorizedKeysFile .ssh/authorized_keys
    
    


    이러한 설정을 추가하면, SSH 서버의 인증 키 목록은 PEM 형식으로 저장됩니다.

    또한, ssh2_publickey_list 함수를 사용할 때, PEM 형식의 키 목록을 읽을 수 있도록 설정할 수 있습니다. ssh2_publickey_list 함수의 옵션인 'ssh2_publickey_list($ssh, SSH2_PUBLICKEY_LIST_PEM)'을 사용하면, PEM 형식의 키 목록을 읽을 수 있습니다.

    #hostingforum.kr
    
    
    $ssh = ssh2_connect('example.com', 22);
    
    ssh2_auth_publickey_file($ssh, 'username', '/path/to/private/key');
    
    $publicKeys = ssh2_publickey_list($ssh, SSH2_PUBLICKEY_LIST_PEM);
    
    


    이러한 설정을 추가하면, ssh2_publickey_list 함수는 PEM 형식의 키 목록을 읽을 수 있습니다.

    마지막으로, 잘못된 형식의 키 목록을 필터링하거나 제거할 수 있습니다. 잘못된 형식의 키 목록을 필터링하거나 제거하려면, ssh2_publickey_list 함수의 결과를 검사하여 잘못된 형식의 키 목록을 식별하고 제거할 수 있습니다.

    #hostingforum.kr
    
    
    $publicKeys = ssh2_publickey_list($ssh, SSH2_PUBLICKEY_LIST_PEM);
    
    $filteredKeys = array_filter($publicKeys, function($key) {
    
        return strpos($key, '-----BEGIN RSA PRIVATE KEY-----') === 0;
    
    });
    
    


    이러한 코드를 사용하면, 잘못된 형식의 키 목록을 필터링하거나 제거할 수 있습니다.

    이러한 방법을 사용하면, ssh2_publickey_list 함수를 사용하여 인증 키 목록을 가져올 때, 잘못된 형식의 키 목록을 반환하는 문제를 해결할 수 있습니다.

    2025-04-27 03:49

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

검색

게시물 검색