public function ssh_keys_list() { $keys = array(); foreach ($this->user->getAuthorizedKeysArray() as $ssh_key_number => $ssh_key_value) { $keys[] = array('ssh_key_ellipsis_value' => substr($ssh_key_value, 0, 40) . '...' . substr($ssh_key_value, -40), 'ssh_key_value' => $ssh_key_value, 'ssh_key_number' => $ssh_key_number); } return $keys; }
public function deleteSSHKeys(PFUser $user, array $ssh_key_index_to_delete) { $user_keys_to_keep = $user->getAuthorizedKeysArray(); foreach ($ssh_key_index_to_delete as $ssh_key_index) { unset($user_keys_to_keep[$ssh_key_index]); } $this->updateUserSSHKeys($user, array_values($user_keys_to_keep)); }
private function getKeysFromString($keys_as_string) { $user = new PFUser(); $user->setAuthorizedKeys($keys_as_string); return array_filter($user->getAuthorizedKeysArray()); }
private function writeSSHFile(PFUser $user, $ssh_dir) { $authorized_keys_new = "{$ssh_dir}/authorized_keys_new"; touch($authorized_keys_new); $this->backend->chmod($authorized_keys_new, 0600); $ssh_keys = implode("\n", $user->getAuthorizedKeysArray()); if (file_put_contents($authorized_keys_new, $ssh_keys) === false) { throw new RuntimeException("Unable to write authorized_keys_new file for " . $user->getUserName()); } if (rename($authorized_keys_new, "{$ssh_dir}/authorized_keys") === false) { throw new RuntimeException("Unable to rename {$authorized_keys_new} file for " . $user->getUserName()); } }