Предполагая, что у вас есть закрытый ключ SSH id_rsa
, вы можете извлечь из него открытый ключ следующим образом:
openssl rsa -in id_rsa -pubout -out id_rsa.pub.pem
Я понимаю OP спросил о преобразовании открытого ключа, так что это не совсем ответ на вопрос, однако я подумал, что это все равно будет полезно для некоторых.
Также обратите внимание, что эта команда приводит к формату открытого ключа PEM, чего обычно и ожидает OpenSSL. С другой стороны, ответ Брайана приводит к созданию файла в формате RSAPublicKey, который не является нормальным форматом, ожидаемым OpenSSL (хотя более поздние версии, очевидно, могут читать его с помощью флага -RSAPublicKey_in
). Чтобы преобразовать, вы можете сделать это:
openssl rsa -RSAPublicKey_in -in id_rsa.rsapub.pem -pubout -out id_rsa.pub.pem
vmtouch
определенно НЕ справится с этим. vmtouch
выполняет open(2)
и mmap(2)
для файлов, которые вы указываете.
Даже если вы заставите ядро кэшировать readdir(2)
, это по-прежнему будет линейной операцией, и во многих случаях все равно попадет на диск:
In the current VFS readdir operation, the low-level file system is always called, even if the entire directory is in cache.
(07.08.2017 18 :40 UTC последующее наблюдение):
ls -l
делает гораздо больше, чем просто readdir
. readdir(2)
в любом случае устарел, readdir(3)
является оболочкой для (f)stat
в каталоге и getdents
в каталоге. Параметр -l
для ls
также вызывает lstat
для каждой записи в нем.
getdents
сам по себе является просто оболочкой для всего, что данная файловая система предоставляет для указателей .iterate_shared
и .iterate
на операции файловой структуры каталога. В случае ext4
это завершается ext4_readdir
.
Некоторые файловые системы реализуют кэширование на этом уровне. (NFS — очень наглядный пример ), но другие могут по-прежнему поражать диск.
В качестве корня вашего первоначального вопроса вы могли бы написать какой-нибудь демон, который постоянно продолжает работать getdents
в заданном каталоге, но иначе невозможно закрепить эти элементы dentry в кеше ядра, и возможно, что ядро полностью игнорирует, что кэш из отдельного потока (зависит от файловой системы ).
Обратим внимание на ext4
на мгновение: если файловая система имеет функцию dir_index
, вы можете выполнить chattr +I dir
для каталога, чтобы пометить каталог как htree -индексированный (очень маленькие каталоги используют это кеш, если установлена функция файловой системы)