Мой коллега предоставил мне ключ ssh, чтобы добавить его в authorized_keys
файл для учетной записи на сервере Linux, чтобы они могли получить доступ к этой учетной записи.
Файл выглядит примерно так:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20160816"
AAAAB3NzaC1yc2EAAAABJQAAAQEApoYJFnGDNis/2oCT6/h9Lzz2y0BVHLv8joXM
s4SYcYUVwBxNzqJsDWbikBn/h32AC36qAW24Bft+suGMtJGS3oSX53qR7ozsXs/D
lCO5FzRxi4JodStiYaz/pPK24WFOb4sLXr758tz2u+ZP2lfDfzn9nLxregZvO9m+
zpToLCWlXrzjZxDesJOcfh/eszU9KUKXfXn6Jsey7ej8TYqB2DgYCfv8jGm+oLVe
UOLEl7fxzjgcDdiLaXbqq7dFoOsHUABBV6kaXyE9LmkbXZB9lQ==
---- END SSH2 PUBLIC KEY ----
Страница руководства для authorized_keys
(ну, sshd) дает понять, что файл ожидает, что каждый ключ займет одну строку. Полагаю, мне нужно преобразовать этот ключ в однострочный формат? Как мне этого добиться?
BEGIN
и END
линииComment
строка (вы можете запомнить это, если хотите добавить ее в качестве комментария позже)Теперь ключ становится:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEApoYJFnGDNis/2oCT6/h9Lzz2y0BVHLv8joXMs4SYcYUVwBxNzqJsDWbikBn/h32AC36qAW24Bft+suGMtJGS3oSX53qR7ozsXs/DlCO5FzRxi4JodStiYaz/pPK24WFOb4sLXr758tz2u+ZP2lfDfzn9nLxregZvO9m+zpToLCWlXrzjZxDesJOcfh/eszU9KUKXfXn6Jsey7ej8TYqB2DgYCfv8jGm+oLVeUOLEl7fxzjgcDdiLaXbqq7dFoOsHUABBV6kaXyE9LmkbXZB9lQ== rsa-key-20160816
Этот однострочный файл будет выполнять все вышеперечисленное, кроме добавления комментария (предполагается, что GNU sed
):
sed key.pub -e 's/---- B.*/ssh-rsa /;/Comment:/d;'|sed ':a;N;$!ba;s/\n//g;s/---.*//'
На этот вопрос есть принятый ответ, но я думаю, что стоит отметить, что есть способ сделать это с помощью ssh-keygen
инструмент, а не sed
:
ssh-keygen -i -f ssh2.pub > openssh.pub
куда ssh2.pub
это ваш существующий ключ ssh2, а openssh.pub будет ключом в формате openssh. Если вы просто хотите скопировать и вставить, вы можете не использовать перенаправление и использовать:
ssh-keygen -i -f ssh2.pub