Mic*_*ade 17 ssh putty ssh-keys
一位同事向我提供了一个 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 ----
Run Code Online (Sandbox Code Playgroud)
authorized_keys
(嗯,sshd)的手册页清楚地表明该文件希望每个键占用一行。所以我想我需要将此密钥转换为单行格式?我该如何实现?
Cra*_*son 17
BEGIN
和END
行Comment
行(如果您想稍后将其添加为评论,可以记下这一点)关键现在变成:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEApoYJFnGDNis/2oCT6/h9Lzz2y0BVHLv8joXMs4SYcYUVwBxNzqJsDWbikBn/h32AC36qAW24Bft+suGMtJGS3oSX53qR7ozsXs/DlCO5FzRxi4JodStiYaz/pPK24WFOb4sLXr758tz2u+ZP2lfDfzn9nLxregZvO9m+zpToLCWlXrzjZxDesJOcfh/eszU9KUKXfXn6Jsey7ej8TYqB2DgYCfv8jGm+oLVeUOLEl7fxzjgcDdiLaXbqq7dFoOsHUABBV6kaXyE9LmkbXZB9lQ== rsa-key-20160816
Run Code Online (Sandbox Code Playgroud)
除了附加注释(这假设为 GNU sed
)之外,这个单行代码将完成上述所有操作:
sed key.pub -e 's/---- B.*/ssh-rsa /;/Comment:/d;'|sed ':a;N;$!ba;s/\n//g;s/---.*//'
Run Code Online (Sandbox Code Playgroud)
小智 15
这个问题有一个公认的答案,但我认为值得注意的是,有一种方法可以使用该ssh-keygen
工具而不是sed
:
ssh-keygen -i -f ssh2.pub > openssh.pub
Run Code Online (Sandbox Code Playgroud)
ssh2.pub
您现有的 ssh2 密钥在哪里, openssh.pub 将是 openssh 格式的密钥。如果您只想复制和粘贴,则可以省略重定向并使用:
ssh-keygen -i -f ssh2.pub
Run Code Online (Sandbox Code Playgroud)