рдХреНрдпрд╛ рддреБрдордиреЗ рдХрднреА рдХреИрд╕реЗ ssh рдЪрд╛рдмрд┐рдпрд╛рдБ рдХрд╛рдо рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? рдпрд╛ рд╡реЗ рдХрд┐рддрдиреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВ?
рдореИрдВ рд╣рд░ рджрд┐рди рдХрдИ рдмрд╛рд░ ssh рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ - рдЬрдм рдореИрдВ
git fetch
рдпрд╛
git push
рд░рди рдХрд░рддрд╛ рд╣реВрдВ, рдЬрдм рдореИрдВ рдХреЛрдб рдХреЛ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реВрдВ рдпрд╛ рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП ssh рдПрдХ рдЬрд╛рджреВ рдмрди рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдЗрд╕рдХреЗ рдХрд╛рдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕рдордЭреЗ рдмрд┐рдирд╛ рдХрд░рддрд╛ рдерд╛ред рдореБрдЭреЗ рдпрд╣ рдмрд╣реБрдд рдкрд╕рдВрдж рдирд╣реАрдВ рдерд╛ - рдореИрдВ рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рд╢реЛрдз рдХрд┐рдпрд╛ рдФрд░ рдЖрдкрдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ред
рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рджреМрд░рд╛рди, рдХрдИ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╣реЛрдВрдЧреЗред рд╡реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдЧреВрдЧрд▓ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдШрд░ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓
~/.ssh/id_rsa
~/.ssh/id_dsa
рдпрд╛ рдпрд╛
~/.ssh/id_dsa
рд╣реИред рдпрд╣ рдПрдХ рдирд┐рдЬреА (рдЙрд░реНрдл рдирд┐рдЬреА) RSA / DSA рдХреБрдВрдЬреА рд╣реИ, рдФрд░
~/.ssh/id_rsa.pub
рдпрд╛
~/.ssh/id_dsa.pub
рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ (рдЙрд░реНрдл рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ) рдХреБрдВрдЬреА рд╣реИред рдЬрд┐рд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдк рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдкрд╛рд╕
~/.ssh/authorized_keys
рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЬрдм рдЖрдк рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ ssh рдХреНрд▓рд╛рдЗрдВрдЯ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирд┐рдЬреА рдХреБрдВрдЬреА рд╣реИ; рд╕рд░реНрд╡рд░ рдпрд╣ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡реИрдз рд╣реИ рдФрд░
~/.ssh/authorized_keys
рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рд╣реИред
рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рдЕрдирдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдкреНрд░рд╛рдЗрд╡реЗрдЯ рдХреА рдлреЙрд░реНрдореЗрдЯ
рдпрд╣ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб (рдкрд╛рд╕рдлрд╝реНрд░реЗрдЬрд╝) рдХреЗ рд╕рд╛рде рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ, рдЕрдиреНрдпрдерд╛ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдЬреЛ рдЖрдкрдХреА рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЛ рдЖрдкрд╕реЗ рдЪреЛрд░реА рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рд╡рд╣ рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХреЗрдЧрд╛ред рдкрд╣рд▓реЗ, рдЕрдирдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдмрд╛рдж рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдП рдЧрдП рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред
рдПрдХ рдЕрдирдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдХреБрдВрдЬреА рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEArCQG213utzqE5YVjTVF5exGRCkE9OuM7LCp/FOuPdoHrFUXk y2MQcwf29J3A4i8zxpES9RdSEU6iIEsow98wIi0x1/Lnfx6jG5Y0/iQsG1NRlNCC aydGvGaC+PwwWiwYRc7PtBgV4KOAVXMZdMB5nFRaekQ1ksdH/360KCGgljPtzTNl 09e97QBwHFIZ3ea5Eih/HireTrRSnvF+ywmwuxX4ubDr0ZeSceuF2S5WLXH2+TV0 ... ... -----END RSA PRIVATE KEY-----
рдирд┐рдЬреА рдХреБрдВрдЬреА рдореЗрдВ
ASN.1 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ
X.690 рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ Base64 рдореЗрдВ рдЗрдирдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореЛрдЯреЗ рддреМрд░ рдкрд░, ASN.1 рдХреА рддреБрд▓рдирд╛ JSON рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ (рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ INTEGER, BOOLEAN, рддрд╛рд░ рдФрд░ рдЕрдиреБрдХреНрд░рдо рдЬреЛ рдПрдХ рдкреЗрдбрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред ASN.1 рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡реЗрдм рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде рдлреИрд╢рди рд╕реЗ рдереЛрдбрд╝рд╛ рдмрд╛рд╣рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ (рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ - рдпрд╣ рдПрдХ рд╕реБрдВрджрд░ рд╕рднреНрдп рдкреНрд░рд╛рд░реВрдк рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ (
рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╣рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рд▓рдЧрднрдЧ рдЯреНрд░рд╛рдВрд╕ред )
рд╣рдо
ssh-keygen
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдкрд░реАрдХреНрд╖рдг RSA рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ
asn1parse
(рдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦреЗ
ASN.1 рдбрд┐рдХреЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЛ рдбреАрдХреЛрдб рдХрд░реЗрдВрдЧреЗ:
$ ssh-keygen -t rsa -N '' -f test_rsa_key $ openssl asn1parse -in test_rsa_key 0:d=0 hl=4 l=1189 cons: SEQUENCE 4:d=1 hl=2 l= 1 prim: INTEGER :00 7:d=1 hl=4 l= 257 prim: INTEGER :C36EB2429D429C7768AD9D879F98C... 268:d=1 hl=2 l= 3 prim: INTEGER :010001 273:d=1 hl=4 l= 257 prim: INTEGER :A27759F60AEA1F4D1D56878901E27... 534:d=1 hl=3 l= 129 prim: INTEGER :F9D23EF31A387694F03AD0D050265... 666:d=1 hl=3 l= 129 prim: INTEGER :C84415C26A468934F1037F99B6D14... 798:d=1 hl=3 l= 129 prim: INTEGER :D0ACED4635B5CA5FB896F88BB9177... 930:d=1 hl=3 l= 128 prim: INTEGER :511810DF9AFD590E11126397310A6... 1061:d=1 hl=3 l= 129 prim: INTEGER :E3A296AE14E7CAF32F7E493FDF474...
ASN.1 рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: рдпрд╣ рдиреМ рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИред рдЙрдирдХрд╛ рдЙрджреНрджреЗрд╢реНрдп
RFC2313 рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ ред рдкрд╣рд▓реА рдФрд░ рддреАрд╕рд░реА рд╕рдВрдЦреНрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ (0) рдФрд░ рдЦреБрд▓реЗ рдкреНрд░рддрд┐рдкрд╛рджрдХ
рдИ рд╣реИрдВ ред рджреВрд╕рд░реА рдФрд░ рдЪреМрдереА рд╕рдВрдЦреНрдпрд╛ (2048 рдмрд┐рдЯ рд▓рдВрдмреА) рдореЙрдбреНрдпреВрд▓
рдПрди рдФрд░ рдЧреБрдкреНрдд рдкреНрд░рддрд┐рдкрд╛рджрдХ рд╣реИрдВред рдпреЗ рд╕рдВрдЦреНрдпрд╛
RSA рдкреНрд░рдореБрдЦ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВред рд╢реЗрд╖ рдкрд╛рдБрдЪреЛрдВ рдХреЛ
n рдФрд░
d рдХреЛ рдЬрд╛рдирдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдбреАрдПрд╕рдП рдХреБрдВрдЬреА рдХреА рд╕рдВрд░рдЪрдирд╛ рд╕рдорд╛рди рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЫрд╣ рдирдВрдмрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
$ ssh-keygen -t dsa -N '' -f test_dsa_key $ openssl asn1parse -in test_dsa_key 0:d=0 hl=4 l= 444 cons: SEQUENCE 4:d=1 hl=2 l= 1 prim: INTEGER :00 7:d=1 hl=3 l= 129 prim: INTEGER :E497DFBFB5610906D18BCFB4C3CCD... 139:d=1 hl=2 l= 21 prim: INTEGER :CF2478A96A941FB440C38A86F22CF... 162:d=1 hl=3 l= 129 prim: INTEGER :83218C0CA49BA8F11BE40EE1A7C72... 294:d=1 hl=3 l= 128 prim: INTEGER :16953EA4012988E914B466B9C37CB... 425:d=1 hl=2 l= 21 prim: INTEGER :89A356E922688EDEB1D388258C825...
рдкрд╛рд╕рд╡рд░реНрдб рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд┐рдЬреА рдХреБрдВрдЬреА рдкреНрд░рд╛рд░реВрдк
рдЕрдм рд╣рдо рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рдЬреАрд╡рди рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдирд┐рдЬреА рдХреБрдВрдЬреА рдЪреЛрд░реА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ - рд╣рдо рдЗрд╕реЗ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗред рдлрд╛рдЗрд▓ рдХрд╛ рдХреНрдпрд╛ рд╣реБрдЖ?
$ ssh-keygen -t rsa -N 'super secret passphrase' -f test_rsa_key $ cat test_rsa_key -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-128-CBC,D54228DB5838E32589695E83A22595C7 3+Mz0A4wqbMuyzrvBIHx1HNc2ZUZU2cPPRagDc3M+rv+XnGJ6PpThbOeMawz4Cbu lQX/Ahbx+UadJZOFrTx8aEWyZoI0ltBh9O5+ODov+vc25Hia3jtayE51McVWwSXg wYeg2L6U7iZBk78yg+sIKFVijxiWnpA7W2dj2B9QV0X3ILQPxbU/cRAVTd7AVrKT ... ... -----END RSA PRIVATE KEY-----
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рджреЛ рд╣реЗрдбрд░ рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИрдВ, рдФрд░ рдмреЗрд╕ 64 рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдбреАрдХреЛрдб рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЕрдм рдорд╛рдиреНрдп ASN.1 рдирд╣реАрдВ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ ASN.1 рдХреА рд╕рдВрд░рдЪрдирд╛ред рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдбред рд╣реЗрдбрд░ рд╕реЗ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: CES рдореЛрдб рдореЗрдВ
AES-128 ред
DEK-Info
рд╣реЗрдбрд░ рдореЗрдВ 128-рдмрд┐рдЯ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╡реЗрдХреНрдЯрд░ (IV) рд╣реИред рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ, рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди AES рдХреБрдВрдЬреА рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ? рдореБрдЭреЗ рдпрд╣ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣рд╛рдБ рдореБрдЭреЗ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ:
- рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ 8 рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡реЗ рдирдордХ рд╣реИрдВ)ред
- рдПрдХ рдмрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдПрдХ MD5 рд╣реИрд╢ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
DEK-Info
рд╣реЗрдбрд░ рд╕реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╡реЗрдХреНрдЯрд░ рд▓реЗрдХрд░ рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреЗ рд╣реИрдВ:
$ tail -n +4 test_rsa_key | grep -v 'END ' | base64 -d | openssl aes-128-cbc -d -iv D54228DB5838E32589695E83A22595C7 -K $( ruby -rdigest/md5 -e 'puts Digest::MD5.hexdigest(["super secret passphrase",0xD5,0x42,0x28,0xDB,0x58,0x38,0xE3,0x25].pack("a*cccccccc"))' ) | openssl asn1parse -inform DER
рдпрд╣ рдХрдорд╛рдВрдб RSA рдкреНрд░рдореБрдЦ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдХреБрдВрдЬреА рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ:
$ openssl rsa -text -in test_rsa_key -passin 'pass:super secret passphrase'
рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рджреЛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рдПрдИрдПрд╕ рдХреБрдВрдЬреА рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ:
- MD5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SHA-1) рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдЕрдЧрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдПрдордбреА 5 рдкрд░реНрдпрд╛рдкреНрдд рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреАред ( рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ - рд▓рдЧрднрдЧред )
- рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдПрдордбреА 5 рдФрд░ рдПрдИрдПрд╕ рдХреА рдЧрдгрдирд╛ рдЬрд▓реНрджреА рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢реЙрд░реНрдЯ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдпрджрд┐ ssh рдХреБрдВрдЬреА рдЦрд░рд╛рдм рд╣рд╛рдереЛрдВ рдореЗрдВ рдЖрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рдЖрдкрдХреЗ рд▓реИрдкрдЯреЙрдк рдпрд╛ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдХреЛ рдмреИрдХрдЕрдк рдХреЗ рд╕рд╛рде рдЪреБрд░рд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдереЛрдбрд╝реА рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рднреАред рдпрджрд┐ рдЖрдк рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╕реЗрдХрдВрдб рдореЗрдВ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдмреБрд░реА рдЦрдмрд░ рд╣реИ: рдПрдХ рдХреБрдВрдЬреА рдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб рд╕реБрд░рдХреНрд╖рд╛ рдЙрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдХреЛрдИ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ: рдЖрдк рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд┐рдЬреА рдХреБрдВрдЬреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
PKCS # 8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╝рд╛рдирд╛
рддреЛ, рд╣рдореЗрдВ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рдПрдХ рд╕рдордорд┐рдд рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░реЗрдЧреА, рддрд╛рдХрд┐ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред
Ssh рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдЕрдЬреАрдм рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдорд╛рдирдХ рд╣реИрдВ:
- PKCS # 5 (RFC 2898) PBKDF2 (рдкрд╛рд╕рд╡рд░реНрдб-рдЖрдзрд╛рд░рд┐рдд рдХреБрдВрдЬреА рд╡реНрдпреБрддреНрдкрддреНрддрд┐ рдлрд╝рдВрдХреНрд╢рди 2) рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ PBES2 (рдкрд╛рд╕рд╡рд░реНрдб-рдЖрдзрд╛рд░рд┐рдд рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реНрдХреАрдо 2) рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реНрдХреАрдо рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ PBKDF2 рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рдПрдХ рд╕рдордорд┐рдд рд╕рд┐рдлрд░ рд╢рд╛рдорд┐рд▓ рд╣реИред
- PKCS # 8 (RFC 5208) PBKDF2 рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рднрдВрдбрд╛рд░рдг рдкреНрд░рд╛рд░реВрдк рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред OpenSSL PKCS # 8 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд┐рдЬреА рдХреБрдВрдЬреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ OpenSSH OpenSSL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк OpenSSH рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛рд░рдВрдкрд░рд┐рдХ ssh рдХреБрдВрдЬреА рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдк рд╕реЗ PKCS # 8 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐
ssh-keygen
рдЕрднреА рднреА рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЪрд╛рдмрд┐рдпрд╛рдБ рдХреНрдпреЛрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдХрдИ рд╕рд╛рд▓реЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдпрд╣ рд╕рд░реНрд╡рд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ: рдирд┐рдЬреА рдХреБрдВрдЬреА рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдХрднреА рдирд╣реАрдВ рдЫреЛрдбрд╝рддреА рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдореМрдЬреВрджрд╛ рдХреБрдВрдЬрд┐рдпрд╛рдБ PKCS # 8 рдореЗрдВ рдмрджрд▓рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ:
$ mv test_rsa_key test_rsa_key.old $ openssl pkcs8 -topk8 -v2 des3 \ -in test_rsa_key.old -passin 'pass:super secret passphrase' \ -out test_rsa_key -passout 'pass:super secret passphrase'
рдпрджрд┐ рдЖрдк PKCS # 8 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирдИ рдХреБрдВрдЬреА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рд╣реА рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЕрдм рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИред
$ cat test_rsa_key -----BEGIN ENCRYPTED PRIVATE KEY----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIOu/S2/v547MCAggA MBQGCCqGSIb3DQMHBAh4q+o4ELaHnwSCBMjA+ho9K816gN1h9MAof4stq0akPoO0 CNvXdtqLudIxBq0dNxX0AxvEW6exWxz45bUdLOjQ5miO6Bko0lFoNUrOeOo/Gq4H dMyI7Ot1vL9UvZRqLNj51cj/7B/bmfa4msfJXeuFs8jMtDz9J19k6uuCLUGlJscP ... - ... -----END ENCRYPTED PRIVATE KEY-----
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд╣рд▓реА рдФрд░ рдЖрдЦрд┐рд░реА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрджрд▓ рдЧрдИ рд╣реИрдВ (
BEGIN ENCRYPTED PRIVATE KEY
рдЬрдЧрд╣
BEGIN RSA PRIVATE KEY
), рдФрд░
Proc-Type
рдФрд░
DEK-Info
рд╣реЗрдбрд░ рдЧрд╛рдпрдм рд╣реЛ рдЧрдП рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рд╕рдорд╛рди ASN.1 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИ:
$ openssl asn1parse -in test_rsa_key 0:d=0 hl=4 l=1294 cons: SEQUENCE 4:d=1 hl=2 l= 64 cons: SEQUENCE 6:d=2 hl=2 l= 9 prim: OBJECT :PBES2 17:d=2 hl=2 l= 51 cons: SEQUENCE 19:d=3 hl=2 l= 27 cons: SEQUENCE 21:d=4 hl=2 l= 9 prim: OBJECT :PBKDF2 32:d=4 hl=2 l= 14 cons: SEQUENCE 34:d=5 hl=2 l= 8 prim: OCTET STRING [HEX DUMP]:3AEFD2DBFBF9E3B3 44:d=5 hl=2 l= 2 prim: INTEGER :0800 48:d=3 hl=2 l= 20 cons: SEQUENCE 50:d=4 hl=2 l= 8 prim: OBJECT :des-ede3-cbc 60:d=4 hl=2 l= 8 prim: OCTET STRING [HEX DUMP]:78ABEA3810B6879F 70:d=1 hl=4 l=1224 prim: OCTET STRING [HEX DUMP]:C0FA1A3D2BCD7A80DD61F4C0287F8B2D...
рд╣рдо ASN.1 рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдХреЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
Sequence (2 elements) |- Sequence (2 elements) | |- Object identifier: 1.2.840.113549.1.5.13 // using PBES2 from PKCS#5 | `- Sequence (2 elements) | |- Sequence (2 elements) | | |- Object identifier: 1.2.840.113549.1.5.12 // using PBKDF2 тАФ yay! :) | | `- Sequence (2 elements) | | |- Byte string (8 bytes): 3AEFD2DBFBF9E3B3 // salt | | `- Integer: 2048 // iteration count | `- Sequence (2 elements) | Object identifier: 1.2.840.113549.3.7 // encrypted with Triple DES, CBC | Byte string (8 bytes): 78ABEA3810B6879F // initialization vector `- Byte string (1224 bytes): C0FA1A3D2BCD7A80DD61F4C0287F8B2DAB46A43E... // encrypted key blob
рдпрд╣ OID (рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░) рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ - рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдЕрджреНрд╡рд┐рддреАрдп рдбрд┐рдЬрд┐рдЯрд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред рдЙрдирд╕реЗ рд╣рдо рд╕реАрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реНрдХреАрдо
pkcs5PBES2 , рдХреБрдВрдЬреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдлрд╝рдВрдХреНрд╢рди
PBKDF2 рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
des-ede3-cbc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐
hMAC-SHA1 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ
рдХрд┐рдпрд╛ рдЬрд╛рддрд╛
рд╣реИ ред
рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ OID рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдЯреЗрдирд░ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмреЗрд╣рддрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
рд╣рдо рдпрд╣ рднреА рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, 2048 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкрд╛рд░рдВрдкрд░рд┐рдХ ssh- рдХреБрдВрдЬреА рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдПрдХ рдмрд╛рд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИ - рдПрдиреНрдпреВрдорд░реЗрдЯрд┐рдВрдЧ рдкрд╛рд╕рд╡рд░реНрдб рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЛрдб рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрджрд┐ рдЖрдк рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЯрд┐рд▓ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдкреАрдХреЗрд╕реАрдПрд╕ # 8 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдХреЗ рдХреБрдЫ рд╡рд░реНрдгреЛрдВ рдХреА рдкрд╛рд╕рд╡рд░реНрдб рд▓рдВрдмрд╛рдИ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдХрдордЬреЛрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ PKCS # 8 рдЗрд╕рдХреЗ рдЪрдпрди рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХрдард┐рди рдмрдирд╛ рджреЗрдЧрд╛ред
рдХреБрдВрдЬреА рдкреНрд░рд╛рд░реВрдк рдмрджрд▓рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
$ mv ~/.ssh/id_rsa ~/.ssh/id_rsa.old $ openssl pkcs8 -topk8 -v2 des3 -in ~/.ssh/id_rsa.old -out ~/.ssh/id_rsa $ chmod 600 ~/.ssh/id_rsa
openssl pkcs8
рддреАрди рдмрд╛рд░ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреА рд╣реИ: рдПрдХ рдмрд╛рд░ рдПрдХ рдореМрдЬреВрджрд╛ рдХреБрдВрдЬреА рдХреЛ рдЕрдирд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдПрдХ рдирдИ рдХреБрдВрдЬреА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╕рдордп рджреЛ рдмрд╛рд░ред рдЖрдк рдПрдХ рдирдпрд╛ рдкрд╛рд╕рд╡рд░реНрдб рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдкреБрд░рд╛рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред
рд╕рднреА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ PKCS # 8 рдкреНрд░рд╛рд░реВрдк рдХреЛ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реИ - рдХреЗрд╡рд▓ ssh рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдирд┐рдЬреА ssh рдХреБрдВрдЬреА рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рд░реНрд╡рд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред
рдЕрдиреБрд╡рд╛рджрдХ рдЯрд┐рдкреНрдкрдгреА рдФрд░ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рд╕реБрдирдХрд░ рдЦреБрд╢ рд╣реЛрдЧрд╛ред