
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