Попробуйте следующее решение:
tail -n +2 name_of_file | head -n-1
Настройка
Вы можете легко адаптировать его для удаления первых n строк, изменив +2
of tail
;
или удалить последние n строк, изменив -1
из head
.
Encontré un enfoque fácil. Necesita la utilidad pem2openpgp
del proyecto monkeysphere y la capacidad de gpg2
para importar la clave existente como subclave.
Primero convierta la clave SSH al formato OpenPGP. Debe proporcionar una nueva identificación de usuario según lo requiera GPG.
$ pem2openpgp $TEMP_USERID <.ssh/id_rsa | gpg2 --import
Ahora tiene una nueva identificación de usuario con su clave SSH como clave maestra. Puede verificarlo congpg2 -K
(Configuré TEMP_USERID
aTEST
). También anote el agarre de la tecla recién importada:
$ gpg2 -K --with-keygrip $TEMP_USERID
sec rsa4096 2018-03-02 [C]
21C766CAC691F395D640E8207E9F9F883D1E49D8
Keygrip = AAB27E63622E87B27AC34293EDF52C3AB016CA2E
uid [ unknown] TEST
Ahora use gpg2 --expert --edit-key
en su clave maestra e importe la clave anterior como su subclave:
$ gpg2 --expert --edit-key $YOURUSERID
gpg> addkey
......
(13) Existing key
Enter the keygrip: AAB27E63622E87B27AC34293EDF52C3AB016CA2E
......
gpg2
le hará muchas preguntas, como de costumbre. Recuerde alternar las capacidades de clave correctas (firmar :desactivado, cifrar :desactivado, autenticar :activado ).
Después de esto, debe tener la clave SSH importada como subclave de su clave maestra. Compruébalo:
$ gpg2 -K $YOURUSERID --with-keygrip
sec rsa4096 2016-02-02 [SC]
......
uid [ 绝对 ] CUI Hao (cvhc) <cuihao.leo@gmail.com>
......
ssb rsa4096 2018-02-21 [A]
Keygrip = AAB27E63622E87B27AC34293EDF52C3AB016CA2E
Puede usar gpg2 --export-ssh-key
para verificar que la subclave importada sea realmente la misma que la clave SSH original.
Tenga en cuenta que la identificación de usuario temporal utilizada para la importación de claves todavía está en su conjunto de claves. Debe eliminarlo manualmente. GnuPG evita que elimine la clave pública / identificación de usuario sin eliminar las claves privadas correspondientes. Sin embargo, dado que el usuario temporal y su subclave importada comparten la misma clave privada, gpg2 --delete-secret-keys $TEMP_USERID
también elimina la subclave importada.
Mi solución es hacer una copia de seguridad de las claves privadas en ~/.gnupg/private-keys-v1.d
y volver a moverlas después de que gpg2
eliminó la subclave importada.
Envío una solicitud de función para pedirle a GnuPG una opción para eliminar la clave pública sin afectar la clave privada:https://dev.gnupg.org/T3808
Все, что вам нужно:
export GPG_TTY=$(tty)
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
ssh-add -c -t 3600 ~/.ssh/id_rsa # set the cache lifetime as 3600s
Тогда смело удаляйте файлы:mv ~/.ssh/id_rsa.* /path/to/backup
.
Теперь вы можете выполнить вход по SSH для тестирования.
В конце концов, не забудьте добавить в свой профиль Среды, например .profile
или ~/.bashrc
.
(Ps :Вы можете найти ключ ssh (в формате gpg ), существует в ~/.gnupg/private-keys-v1.d/
и с именем keygrip, который можно использовать для добавления в качестве подраздела.
Ссылка:
https://incenp.org/notes/2015/gnupg-for-ssh-authentication.html
https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html