{"id":303408,"date":"2020-05-12T09:00:31","date_gmt":"2020-05-12T09:00:31","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=303408"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=303408","title":{"rendered":"Single sign-on \u0434\u043b\u044f SSH \u0441\u0432\u043e\u0438\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/itsumma\/blog\/500828\/\"><b>TL;DR<\/b> \u0412 \u044d\u0442\u043e\u0442 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c single sign-on \u0434\u043b\u044f SSH \u043e\u0442 Google. \u0417\u0430 \u043a\u0443\u043b\u0438\u0441\u0430\u043c\u0438 \u043c\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f OpenID Connect (OICD), \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0440\u043e\u0447\u043d\u044b\u043c\u0438 SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044f\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 SSH, \u0438 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u044b\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 <a href=\"https:\/\/smallstep.com\/certificates\/\"><code>step-ca<\/code><\/a> \u0438 <a href=\"https:\/\/smallstep.com\/cli\/\"><code>step<\/code><\/a> \u043e\u0442 Smallstep. \u041c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c SSH Certificate Authority \u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432 \u043d\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u043e\u0432\u044b\u0439 \u0445\u043e\u0441\u0442. \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u0432\u043d\u043e\u0441\u0438\u0442 \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432 \u043f\u043e\u043c\u0438\u043c\u043e single sign-on, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0442\u043f\u0430\u0434\u0430\u0435\u0442 \u043d\u0443\u0436\u0434\u0430 \u0432 \u0441\u0431\u043e\u0440\u0435, \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 <code>authorized_keys<\/code>, \u0445\u043e\u0442\u044c \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u0439 \u043f\u0430\u0440\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e\/\u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e SSH \u043a\u043b\u044e\u0447\u0435\u0439.<\/p>\n<h2>\u041a\u0430\u043a \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f SSH<\/h2>\n<p>  \u0415\u0449\u0435 \u0432 \u0434\u0430\u043b\u0435\u043a\u043e\u043c 2004 \u0433\u043e\u0434\u0443 \u043a\u0442\u043e-\u0442\u043e \u043d\u0430\u0443\u0447\u0438\u043b \u043c\u0435\u043d\u044f \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0432 \u0444\u0430\u0439\u043b <code>authorized_keys<\/code>. \u0421 \u0442\u0435\u0445 \u043f\u043e\u0440 \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b \u043d\u0435\u0432\u0438\u043d\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0441\u0442\u0430\u0440\u044b\u0439 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0438 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044f \u0437\u0430\u0431\u044b\u0432\u0430\u043b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c <code>chmod<\/code>.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u041b\u0438\u0448\u044c \u043e\u0434\u043d\u0430\u0436\u0434\u044b, \u043a\u043e\u0433\u0434\u0430 \u0432 2015 \u0433\u043e\u0434\u0443 OpenSSH \u043e\u0431\u044a\u044f\u0432\u0438\u043b \u043c\u043e\u0439 \u0442\u0438\u043f \u043a\u043b\u044e\u0447\u0430 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c, \u044f \u0441 \u043d\u0435\u043e\u0445\u043e\u0442\u043e\u0439 \u0437\u0430\u043c\u0435\u043d\u0438\u043b \u0441\u0432\u043e\u0439 \u043a\u043b\u044e\u0447. \u0422\u0435\u043f\u0435\u0440\u044c, \u0437\u0430 \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u044c\u044e \u043b\u0435\u0442, \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u0430\u0434\u0430\u0442\u044c, \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445 \u043c\u043e\u0439 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0432\u0441\u0435 \u0435\u0449\u0435 \u043b\u0435\u0436\u0438\u0442. \u041c\u043e\u0436\u0435\u0442, \u0443 \u0441\u0442\u0430\u0440\u044b\u0445 \u0441\u0442\u0430\u0440\u0442\u0430\u043f\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b? \u0423 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0441 \u0444\u0440\u0438\u043b\u0430\u043d\u0441\u0430? \u041d\u0430 \u043a\u0440\u0438\u043f\u0442\u043e\u0444\u0435\u0440\u043c\u0435 \u043c\u043e\u0435\u0439 \u043f\u043b\u0435\u043c\u044f\u043d\u043d\u0438\u0446\u044b?<\/p>\n<p>  \u0421 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u044b <code>authorized_keys<\/code> \u2014 \u044d\u0442\u043e \u043f\u043e\u043b\u043d\u044b\u0439 \u043e\u0442\u0441\u0442\u043e\u0439. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u043d\u0430\u0447\u0430\u043b\u0443 \u043a\u0442\u043e-\u0442\u043e \u0438 \u043f\u0438\u0448\u0435\u0442 \u0438\u0445 \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u043a\u0430\u043a \u044f, \u043d\u043e \u0441 \u0440\u043e\u0441\u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0430 \u0445\u043e\u0441\u0442\u043e\u0432 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u0448\u043c\u0430\u0440. \u0418 \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u0443\u0442\u0440\u043e\u043c \u0442\u044b \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u0435\u0448\u044c\u0441\u044f \u043f\u043e\u0441\u0440\u0435\u0434\u0438 \u0437\u0430\u0442\u044f\u043d\u0443\u0432\u0448\u0435\u0433\u043e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0431\u043e\u043b\u043e\u0442\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439.<\/p>\n<p>  \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439 \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 (playbook) \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430\u043c\u0438 <code>authorized_keys<\/code>, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0445 \u0441\u0431\u043e\u0440, \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0438 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0441\u0438\u0432\u043e\u043c \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u0440\u043e\u0434\u0443\u043c\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<h2>Single Sign-On \u0441 OpenID Connect \u0438 SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438<\/h2>\n<p>  \u0412\u043c\u0435\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 <code>authorized_keys<\/code> \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c SSH Certificate Authority \u0438 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e SSH \u0447\u0435\u0440\u0435\u0437 \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0440\u043e\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 single sign-on \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c <a href=\"https:\/\/openid.net\/connect\/\">OpenID Connect (OICD)<\/a>. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043c\u0435\u043d\u043d\u044b\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0448\u0443 \u0432\u0430\u0448\u0435\u0433\u043e \u0442\u0435\u0440\u043f\u0435\u043d\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0447\u0435\u043c \u043f\u0440\u0438 \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u0439 SSH-\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb. <\/p>\n<p>  <i><b>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442?<\/b> SHH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u2014 \u044d\u0442\u043e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0430\u0440\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e\/\u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e SSH \u043a\u043b\u044e\u0447\u0435\u0439. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0445\u043e\u0441\u0442 \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438 \u0432 \u0445\u043e\u0434\u0435 SSH-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f (handshake), \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u0443\u0440\u0435\u0437\u0430\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 TLX X.509, \u0432 \u0442\u043e\u0439 \u0436\u0435 \u043c\u0430\u043d\u0435\u0440\u0435 \u0447\u0442\u043e \u0438 \u043f\u0430\u0440\u0430 SSH \u043a\u043b\u044e\u0447\u0435\u0439. \u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 <a href=\"https:\/\/smallstep.com\/blog\/use-ssh-certificates\/\">\u0441\u0442\u0430\u0442\u044c\u0435\u0439<\/a>.<\/i><\/p>\n<p>  \u041d\u0438\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442:  <\/p>\n<pre><code class=\"bash\">-:         Type: ecdsa-sha2-nistp256-cert-v01@openssh.com user certificate         Public key: ECDSA-CERT SHA256:N7ErGTPjhmruRS\/4OiwyRi6Iyr59z0Ur1ifkHIHu4V8         Signing CA: ECDSA SHA256:E0GH\/kZ\/CGUIe8mMzzpujIiEYGC2IHDHafYBnye1WSU         Key ID: &quot;carl@smallstep.com&quot;         Serial: 16253962425132258867         Valid: from 2020-03-23T16:01:39 to 2020-03-24T08:01:39         Principals:                 carl                 carl@smallstep.com         Critical Options: (none)         Extensions:                 permit-X11-forwarding                 permit-agent-forwarding                 permit-port-forwarding                 permit-pty                 permit-user-rc<\/code><\/pre>\n<p>  <i><b>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b<\/b>, \u043a\u0430\u043a \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u0448\u0435, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0445\u043e\u0441\u0442\u0430\u043c \u043e\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0430 <b>\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0445\u043e\u0441\u0442\u043e\u0432<\/b> \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043e\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u0445\u043e\u0441\u0442\u044b. \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435 <\/i><code>Principals<\/code><i>.<\/p>\n<p>  \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0432 \u0445\u043e\u0434\u0435 SSH \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f SSHD \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u043e\u0439\u0442\u0438 \u0432 \u0445\u043e\u0441\u0442 \u043f\u043e\u0434 \u0438\u043c\u0435\u043d\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u0437 \u043f\u043e\u043b\u044f <\/i><code>Principals<\/code><i> \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e, SSH \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0438\u0441\u043a\u043e\u043c\u043e\u0435 \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430 \u0432 \u043f\u043e\u043b\u0435 <\/i><code>Principals<\/code><i> \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0445\u043e\u0441\u0442\u0430.<\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0443 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u043f\u0440\u0438\u0432\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 SSH \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, agent forwarding \u0438 port forwarding) \u0438\u043b\u0438 \u0444\u043e\u0440\u0441\u0438\u0440\u0443\u044e\u0442 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439.<\/i><\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c SSH Certificate Authority (CA), \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 <a href=\"https:\/\/smallstep.com\/certificates\/\"><code>step-ca<\/code><\/a> \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0442 Smallstep. \u041f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0443 \u043d\u0438\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0438\u0439, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0438 \u0445\u043e\u0441\u0442\u044b \u0431\u0443\u0434\u0443 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e CA.<\/p>\n<p>  \u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u0445\u0435\u043c\u0430 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0410\u043b\u0438\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0441\u0432\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0438 \u0437\u0430\u0445\u043e\u0434\u0438\u0442 \u0432 \u0445\u043e\u0441\u0442:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ya\/w-\/0g\/yaw-0gjayzwcdbwtd3xmgbpq2_a.png\"><\/p>\n<p>  \u041c\u044b \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 CA \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u043d\u0430\u0448\u0438\u043c <a href=\"https:\/\/smallstep.com\/cli\/\">\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438<\/a> <a href=\"https:\/\/smallstep.com\/cli\/\"><code>step<\/code><\/a> \u0431\u043b\u043e\u043a\u043e\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 OpenSSH. <\/p>\n<h2>\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430<\/h2>\n<p>  <\/p>\n<ul>\n<li><b>\u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438.<\/b> \u0423 \u0432\u0430\u0441 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0440\u0430\u0441\u043a\u0438\u0434\u0430\u043d\u043e \u0431\u0435\u0441\u0441\u0447\u0435\u0442\u043d\u043e\u0435 (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0440\u0430\u0432\u043d\u043e\u0435 <code>users * hosts<\/code>) \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0430\u0439\u043b\u043e\u0432 <code>authorized_keys<\/code>. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0430 \u0432\u0430\u0448\u0438\u0445 \u0445\u043e\u0441\u0442\u0430\u0445 \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0434\u0435\u043b <code>.ssh<\/code>.<\/li>\n<li><b>\u041b\u0435\u0433\u043a\u0438\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u043e\u0442\u0437\u044b\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0445\u043e\u0441\u0442\u0430\u0445.<\/b> \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u0430\u0440\u044b SSH \u043a\u043b\u044e\u0447\u0435\u0439 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0430\u044e\u0442, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043d\u0430\u043c \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c <a href=\"https:\/\/smallstep.com\/blog\/passive-revocation\/\">\u043f\u0430\u0441\u0441\u0438\u0432\u043d\u0443\u044e \u0440\u0435\u0432\u043e\u043a\u0430\u0446\u0438\u044e<\/a>, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e SSH \u0438\u0441\u0442\u0435\u043a\u0430\u0435\u0442 \u0432 \u0442\u043e\u0442 \u0436\u0435 \u0434\u0435\u043d\u044c, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 OAuth.<\/li>\n<li><b>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<\/b> \u0412\u044b\u0434\u0430\u0447\u0430 SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u043f\u043e\u0442\u043e\u043a\u043e\u043c OAuth OICD \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u0442\u0438\u0441\u044c \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0432\u0430\u0448\u0438\u0445 \u043f\u043e\u043b\u0438\u0442\u0438\u043a \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 Google (\u0432\u043a\u043b\u044e\u0447\u0430\u044f 2FA \u0438 \u043a\u043b\u044e\u0447\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438). \u0412\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u0440\u043e\u043a\u0438 \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432.<\/li>\n<li><b>\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043d\u044b\u0445 \u0445\u043e\u0441\u0442\u043e\u0432.<\/b> \u041c\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f EC2 <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/instance-identity-documents.html\">Instance Identity Documents (IIDs)<\/a>, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0441\u0442\u0430\u043c \u043d\u0430 \u0432\u0430\u0448\u0435\u043c AWS \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0435.<\/li>\n<li><b>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438.<\/b> \u041f\u0430\u0440\u044b \u043a\u043b\u044e\u0447\u0435\u0439 \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u2014 \u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u0441\u0442\u0435\u043a\u0430\u044e\u0442.<\/li>\n<li><b>\u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e Trust On First Use (TOFU).<\/b> \u041f\u043e\u043b\u044c\u0437\u0443\u044f\u0441\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438 \u0445\u043e\u0441\u0442\u043e\u0432, \u0432\u044b \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435:<br \/> \n<pre><code class=\"bash\">The authenticity of host 'ec2-3-15-28-130.us-east-2.compute.amazonaws.com (3.15.28.130)' can`t be established. ECDSA key fingerprint is SHA256:HYDAjwFL\/qEmTuKm903tIk0fbPNk1CSRqH\/usavToLw. Are you sure you want to continue connecting (yes\/no\/[fingerprint])? \t<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<h2>\u0427\u0435\u0433\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435\u0442<\/h2>\n<p>  <\/p>\n<ul>\n<li>\u0411\u043e\u043b\u0435\u0435 \u0442\u0435\u0441\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430\u043c\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u043c\u0438 SCIM \u0438\u043b\u0438 LDAP).<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0434\u043b\u044f <code>sudo<\/code>.<\/li>\n<li>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c (access control lists, ACLs) \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0438 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 \u0445\u043e\u0441\u0442\u043e\u0432.<\/li>\n<li>\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 CA.<\/li>\n<li>\u041d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u0437\u044b\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430, <i>\u0435\u0449\u0435 \u0434\u043e \u0435\u0433\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044f.<\/i><\/li>\n<\/ul>\n<p>  <\/p>\n<h2>\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c<\/h2>\n<p>  <\/p>\n<ul>\n<li>\u0412\u0430\u0448\u0438 \u0445\u043e\u0441\u0442\u044b \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430 EC2.<\/li>\n<li>\u0412\u0430\u0448\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0434\u043e\u043c\u0435\u043d\u0435 GSuite.<\/li>\n<li>\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 <code>step<\/code><br \/> \n<ul>\n<li>\u0414\u043b\u044f macOS \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c <code>brew install step<\/code>.<\/li>\n<li> \u0414\u043b\u044f Linux \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"https:\/\/github.com\/smallstep\/cli\/releases\">\u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 Debian<\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<h2>\u041d\u043e \u044f \u043d\u0435 \u0445\u043e\u0447\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f Certificate Authority!<\/h2>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u044b \u0434\u0443\u043c\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0438 \u0441\u0442\u0440\u0430\u0448\u043d\u043e. \u0422\u0430\u043a\u0443\u044e \u0440\u0435\u043f\u0443\u0442\u0430\u0446\u0438\u044e Certificate Authorities \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0438\u0437-\u0437\u0430 \u0437\u0430\u0433\u0430\u0434\u043e\u0447\u043d\u044b\u0445 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 TLS X.509, \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0441\u043b\u0430 \u0430\u043a\u0440\u043e\u043d\u0438\u043c\u043e\u0432 \u0432 \u043c\u0438\u0440\u0435 \u0418\u041e\u041a (\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439, PKI), \u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0430\u043a\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u0430\u043a <code>openssl.<\/code><\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 CA, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/letsencrypt.org\">Let&#8217;s Encrypt<\/a>, \u0435\u0441\u0442\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430.<\/p>\n<p>  \u041c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f Let\u2019s Encrypt.<\/p>\n<p>  SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043f\u0440\u043e\u0449\u0435, \u0447\u0435\u043c TLS \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b. SSH CA \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0445\u043e\u0441\u0442\u043e\u0432 \u043e\u0434\u043d\u043e\u043c\u0443 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0443.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c CA \u0441 \u0442\u0440\u0435\u043c\u044f <a href=\"https:\/\/github.com\/smallstep\/certificates\/blob\/master\/docs\/provisioners.md\">\u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430\u043c\u0438<\/a> \u2014 \u0442\u0440\u0435\u043c\u044f \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u0432\u044b\u0434\u0430\u0447\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432:  <\/p>\n<ul>\n<li>\u0414\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u043c\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f <b>\u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u043c OAuth OIDC<\/b>, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043d\u0430\u0448\u0435\u043c\u0443 Google OAuth \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e. \u041c\u044b \u0434\u043e\u0432\u0435\u0440\u044f\u0435\u043c Google \u0432 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u043b\u044e\u0434\u0435\u0439 \u0438 \u0432\u044b\u0434\u0430\u0447\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0445, \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 Google \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 OAuth \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. CA \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442 \u0442\u043e\u043a\u0435\u043d \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c Google.<\/li>\n<li>\u0414\u043b\u044f \u043d\u043e\u0432\u044b\u0445 EC2 \u0445\u043e\u0441\u0442\u043e\u0432 \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f <b>\u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a AWS<\/b>, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043d\u0430\u0448\u0435\u043c\u0443 AWS \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0443. \u041d\u043e\u0432\u044b\u0435 \u0445\u043e\u0441\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0445\u043e\u0441\u0442\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430. \u041c\u044b \u0434\u043e\u0432\u0435\u0440\u044f\u0435\u043c AWS \u0432 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 Amazon IIDs, \u0438 CA \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442 \u0438\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c Amazon.<\/li>\n<li>\u0418 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0434\u043b\u044f \u0435\u0436\u0435\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0445\u043e\u0441\u0442\u043e\u0432 \u043c\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f <b>\u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u043c SSHPOP<\/b>.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c?<\/p>\n<h2>1. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 Google OAuth<\/h2>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f <a href=\"https:\/\/console.developers.google.com\/apis\/credentials\/oauthclient\">\u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 Google 2.0 OAuth<\/a>, \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u0430\u0439\u043c\u0435\u0442 \u043f\u0430\u0440\u0443 \u043c\u0438\u043d\u0443\u0442.  <\/p>\n<ul>\n<li>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0433\u043e \u0435\u0449\u0435 \u043d\u0435\u0442, \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 <a href=\"https:\/\/console.cloud.google.com\/projectcreate?pli=1\">Google Cloud Console Project<\/a><br \/> \n<ul>\n<li>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0435\u0433\u043e \u0432 \u0442\u043e\u043c GSuite Organization, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f single sign-on.<\/li>\n<\/ul>\n<\/li>\n<li>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 <a href=\"https:\/\/console.developers.google.com\/apis\/credentials\/consent\">OAuth 2.0 consent screen<\/a> \u043f\u043e\u0434 <b>\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 (Internal)<\/b> \u043f\u0440\u043e\u0435\u043a\u0442<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435<a href=\"https:\/\/console.developers.google.com\/apis\/credentials\/oauthclient\"> \u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 OAuth 2.0<\/a><br \/> \n<ul>\n<li>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u0432\u0438\u0434\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (Application Type) \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 <b>\u041f\u0440\u043e\u0447\u0435\u0435 (Other)<\/b><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  \u0417\u0430\u043f\u0438\u0448\u0438\u0442\u0435 <b>Client ID<\/b> \u0438 <b>Client Secret<\/b>, \u043e\u043d\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0448\u0430\u0433\u0435!<br \/>  <i><b>\u0417\u0430\u043c\u0435\u0442\u043a\u0430:<\/b> \u0412\u0430\u0448 CA \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432 GSuite Organization, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u0432\u0430\u0448\u0435\u043c\u0443 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0443 Google Cloud project.<\/i><\/p>\n<h2>2. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0432\u0430\u0448 Certificate Authority<\/h2>\n<p>  \u041c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c <code>step-ca<\/code> \u043d\u0430 <b>Ubuntu 18.04 LTS<\/b> \u0432 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0435 AWS. \u041d\u0430\u043c \u0434\u043e\u043b\u0436\u043d\u043e \u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 AWS (t2.micro\/t3.micro).<br \/>  <a href=\"https:\/\/gist.github.com\/tashian\/244fc69ccb7ceec433c7811e91cbf0b7\"><b>\u0412\u043e\u0437\u044c\u043c\u0438\u0442\u0435 \u044d\u0442\u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 CA<\/b><\/a> \u0438 \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0432\u0435\u0440\u0445\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:  <\/p>\n<ul>\n<li>ID OICD \u043a\u043b\u0438\u0435\u043d\u0442\u0430<\/li>\n<li>OICD client secret<\/li>\n<li>\u0414\u043e\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u043c\u044f \u0432\u0430\u0448\u0435\u0433\u043e GSuite<\/li>\n<li>\u0418\u043c\u044f \u0432\u0430\u0448\u0435\u0433\u043e CA<\/li>\n<li>\u041f\u0430\u0440\u043e\u043b\u044c \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430<\/li>\n<li>\u0412\u0430\u0448\u0443 \u043f\u043e\u0447\u0442\u0443<\/li>\n<\/ul>\n<p>  \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0435\u0433\u043e \u0432 \u0432\u0438\u0434\u0435 <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/user-data.html\">EC2 User Data \u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/a>, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0442\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0448\u0430\u0433\u0435 3 (\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432), \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0432\u0430\u0448 EC2 \u0438\u043d\u0441\u0442\u0430\u043d\u0441.<\/p>\n<p>  <i>\u0414\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0432\u0430\u0448\u0435\u043c\u0443 VPC \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0448\u043b\u044e\u0437, \u0438 \u0432\u0430\u0448 \u0438\u043d\u0441\u0442\u0430\u043d\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u0432\u0441\u0435\u043c \u0432\u0430\u0448\u0438\u043c \u0445\u043e\u0441\u0442\u0430\u043c \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u0445 22 (SSH) \u0438 443 (HTTPS).<\/p>\n<p>  \u041f\u043e\u043b\u0435\u0437\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e <\/i><code>step-ca<\/code><i> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 HTTPS \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 mTLS \u2014 \u0442\u0430\u043a \u043e\u043d \u043b\u0443\u0447\u0448\u0435 \u0437\u0430\u0449\u0438\u0449\u0435\u043d \u043e\u0442 \u0430\u0442\u0430\u043a \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u043c web-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c.<\/i><\/p>\n<p>  \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u0441\u0432\u043e\u0438\u043c PEM \u043a\u043b\u044e\u0447\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0432\u0430\u0448\u0435\u043c\u0443 CA \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0443.<\/p>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 User Data \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <code>\/var\/log\/cloud-init-output.log<\/code>. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0435\u0433\u043e \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0438 <code>step-ca<\/code> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  CA \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043b\u044e\u0447\u0438 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b:  <\/p>\n<ul>\n<li><code>\/etc\/step-ca\/certs\/root_ca.crt<\/code> \u2014 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 TLS \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0432\u0430\u0448\u0435\u0433\u043e CA (\u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u044b\u0439).<\/li>\n<li><code>\/etc\/step-ca\/certs\/ssh_host_ca_key.pub<\/code> \u2014 CA SSH \u043a\u043b\u044e\u0447 \u0445\u043e\u0441\u0442\u0430 \u0434\u0430\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0432\u0435\u0440\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0445\u043e\u0441\u0442\u043e\u0432.<\/li>\n<li><code>\/etc\/step-ca\/certs\/ssh_user_ca_key.pub<\/code> \u2014 CA SSH \u043a\u043b\u044e\u0447 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u0430\u0435\u0442 \u0445\u043e\u0441\u0442\u0430\u043c \u0432\u0435\u0440\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/li>\n<li>\u0423 \u0432\u0430\u0441 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 CA (\u0432 <code>\/etc\/step-ca\/secrets<\/code>) \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0438 \u043a\u043b\u044e\u0447\u0435\u0439. \u0414\u043b\u044f \u0434\u0435\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u044d\u0442\u0438\u0445 \u043a\u043b\u044e\u0447\u0435\u0439 CA \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u043f\u0430\u0440\u043e\u043b\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 <code>\/etc\/step-ca\/password.txt<\/code>.<\/li>\n<\/ul>\n<p>  \u041f\u043e\u0434 \u0440\u0443\u0442\u043e\u043c \u0443\u0431\u0435\u0440\u0438\u0442\u0435 User Data \u0441\u043a\u0440\u0438\u043f\u0442 \u0441 \u0432\u0430\u0448\u0438\u043c root \u043f\u0430\u0440\u043e\u043b\u0435\u043c CA:  <\/p>\n<pre><code class=\"bash\"># rm \/var\/lib\/cloud\/instances\/i-**\/user-data.txt**<\/code><\/pre>\n<p>  \u041e\u0442 \u0432\u0430\u0448\u0435\u0433\u043e CA \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438:  <\/p>\n<ul>\n<li>\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0435\u0433\u043e \u0441\u043d\u043e\u0432\u0430 \u043d\u0430\u0439\u0442\u0438.<\/li>\n<li>\u041e\u0442\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u2014 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043e\u0431\u0449\u0435\u0433\u043e TLS \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u044d\u0442\u0438\u043c \u0445\u043e\u0441\u0442\u043e\u043c.<\/li>\n<\/ul>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u043e\u0434 \u0440\u0443\u0442\u043e\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:  <\/p>\n<pre><code class=\"bash\"># step certificate fingerprint $(step path)\/certs\/root_ca.crt 5bc2b4779ad1562f6ed0809857fbed7925d2432eb25083f41a468532495ca658<\/code><\/pre>\n<p>  \u041d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u043e. \u0412\u0430\u0448 CA \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b!<\/p>\n<h3>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u0445\u043e\u0441\u0442<\/h3>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0438\u043d\u0441\u0442\u0430\u043d\u0441 Ubuntu, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0430\u0448\u0438\u043c \u043f\u0435\u0440\u0432\u044b\u043c <code>ssh<\/code> target \u0445\u043e\u0441\u0442\u043e\u043c.<\/p>\n<p>  <i><b>\u0417\u0430\u043c\u0435\u0442\u043a\u0430:<\/b> \u0412\u0430\u0448 CA \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0445\u043e\u0441\u0442\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u043c \u043d\u0430 \u0435\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0435 AWS.<\/i><\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c <a href=\"https:\/\/gist.github.com\/tashian\/fde43668cbf6e3227fb13ef51db650b8\">User Data \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u0445\u043e\u0441\u0442\u0430<\/a> \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:  <\/p>\n<ul>\n<li>\u0410\u0434\u0440\u0435\u0441 \u0432\u0430\u0448\u0435\u0433\u043e CA (<code>https:\/\/[CA hostname]<\/code>).<\/li>\n<li>\u041e\u0442\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0432\u0430\u0448\u0435\u0433\u043e CA.<\/li>\n<\/ul>\n<p>  \u041d\u0438\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0434\u0435\u043b\u0430\u0442\u044c User Data \u0441\u043a\u0440\u0438\u043f\u0442:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2s\/n_\/4h\/2sn_4hau6ibpp9ngtjvgas5bezg.png\"><\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0445\u043e\u0441\u0442\u0430 \u0432 \u043e\u0431\u043c\u0435\u043d \u043d\u0430 <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/instance-identity-documents.html\">Instance Identity Document (IID)<\/a> \u0438 \u0435\u0433\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u044c.<\/p>\n<p>  <i><b>\u041a\u0441\u0442\u0430\u0442\u0438 \u043e\u0431 IID\u2026<\/b> \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0441 \u043d\u0438\u043c\u0438 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438, \u0432\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445:<\/i>  <\/p>\n<pre><code class=\"bash\">$ TOKEN=`curl -X PUT &quot;http:\/\/169.254.169.254\/latest\/api\/token&quot; -H &quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&quot;` \\ &amp;&amp; curl -H &quot;X-aws-ec2-metadata-token: $TOKEN&quot; \u2013v http:\/\/169.254.169.254\/latest\/dynamic\/instance-identity\/document {   &quot;accountId&quot; : &quot;8072125551212&quot;,   &quot;architecture&quot; : &quot;x86_64&quot;,   &quot;availabilityZone&quot; : &quot;us-east-2c&quot;,   &quot;billingProducts&quot; : null,   &quot;devpayProductCodes&quot; : null,   &quot;marketplaceProductCodes&quot; : null,   &quot;imageId&quot; : &quot;ami-0fc20dd1da406780b&quot;,   &quot;instanceId&quot; : &quot;i-01bd292377d6d8fec&quot;,   &quot;instanceType&quot; : &quot;t2.micro&quot;,   &quot;kernelId&quot; : null,   &quot;pendingTime&quot; : &quot;2020-03-11T23:18:12Z&quot;,   &quot;privateIp&quot; : &quot;172.31.46.150&quot;,   &quot;ramdiskId&quot; : null,   &quot;region&quot; : &quot;us-east-2&quot;,   &quot;version&quot; : &quot;2017-09-30&quot; }<\/code><\/pre>\n<p>  \u042d\u0442\u043e\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 JSON \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d Amazon, \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u044c:  <\/p>\n<pre><code class=\"bash\">$ TOKEN=`curl -X PUT &quot;http:\/\/169.254.169.254\/latest\/api\/token&quot; -H &quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&quot;` \\     &amp;&amp; curl -H &quot;X-aws-ec2-metadata-token: $TOKEN&quot; \u2013v http:\/\/169.254.169.254\/latest\/dynamic\/instance-identity\/signature c0p6ygyFNFxyjs\/73QGCQN+7khkZBr6H5cP\/gefBgAwe80GmSTNlQy68LBSQQYrQczv2aHTXj3xa CFkaGE4GPYiAogCkywcnt5VAp3t176GQwVxqfmawTliPMs31dY7ZeZvixN\/1uoe8x1pt0EXAMPLE<\/code><\/pre>\n<p>  \u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435\u0441\u044c \u0441 \u0432\u0430\u0448\u0438\u043c PEM \u043a\u043b\u044e\u0447\u043e\u043c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u0432\u0441\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u043e\u0441\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u0430\u0448\u0435\u0433\u043e User Data \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 <code>\/var\/log\/cloud-init-output.log<\/code>.<\/p>\n<h3>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0441\u0435\u0431\u0435 \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/h3>\n<p>  \u041b\u043e\u0433\u0438\u043d \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u0442\u0435, <i>\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e<\/i> \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u043f\u043e\u0447\u0442\u044b, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432 Google, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:  <\/p>\n<pre><code class=\"bash\">$ sudo adduser --quiet --disabled-password --gecos '' carl<\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u043c\u044b \u0438 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0445\u043e\u0441\u0442\u0430!<\/p>\n<h2>4. \u041d\u0430 \u0431\u043e\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/h2>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0432\u0430\u0448 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"bash\">$ CA_URL=https:\/\/[YOUR CA].compute.amazonaws.com $ CA_FINGERPRINT=[CA FINGERPRINT] $ step ca bootstrap \\        --ca-url $CA_URL \\        --fingerprint $CA_FINGERPRINT<\/code><\/pre>\n<p>  \u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442 \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 CA. \u0423 \u0432\u0430\u0441 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0434\u0432\u0430 \u043d\u043e\u0432\u044b\u0445 \u0444\u0430\u0439\u043b\u0430: <code>~\/.step\/config\/defaults.json<\/code> (\u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <code>step<\/code>) \u0438 <code>~\/.step\/certs\/root_ca.crt<\/code> (TSL \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0432\u0430\u0448\u0435\u0439 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 CA).<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0434\u0430\u0442\u044c \u0441\u0435\u0431\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442:  <\/p>\n<pre><code class=\"bash\">$ step ssh login [your email address] --provisioner &quot;Google&quot;<\/code><\/pre>\n<p>  \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430?  <\/p>\n<ol>\n<li>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0432\u0430\u0448 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 Google OICD.<\/li>\n<li>\u041f\u043e\u0441\u043b\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0442 Google \u0442\u043e\u043a\u0435\u043d ID \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0430\u0448\u0435\u043c\u0443 CA.<\/li>\n<li>\u0412\u0430\u0448 CA \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0442\u043e\u043a\u0435\u043d \u0438 \u0432\u044b\u0434\u0430\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0432\u0430\u0448\u0435\u0439 \u043f\u043e\u0447\u0442\u0435 SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442.<\/li>\n<li>\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a \u0432\u0430\u0448\u0435\u043c\u0443 SSH \u0430\u0433\u0435\u043d\u0442\u0443. \u0427\u0442\u043e\u0431\u044b \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u043d\u0435\u0433\u043e, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c <code>step ssh list<\/code>, \u0430 \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u2014 <code>step ssh list --raw | step ssh inspect<\/code>.<\/li>\n<\/ol>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c SSH \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0448\u0438\u043c CA:  <\/p>\n<pre><code class=\"bash\">$ step ssh config<\/code><\/pre>\n<p>  \u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u0435\u043b\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:  <\/p>\n<ol>\n<li>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0445\u043e\u0441\u0442\u0430 CA \u2014 \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0445\u043e\u0441\u0442\u0430 \u2014 \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u043a\u043b\u044e\u0447 \u0432 \u0432\u0430\u0448\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e SSH \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c (\u0445\u0440\u0430\u043d\u044f\u0449\u0438\u043c\u0441\u044f \u0432 <code>~\/.step\/known_hosts<\/code>):<br \/> \n<pre><code class=\"bash\">@cert-authority * ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHyWTo9TLDwhyLlHq2ANkjtSGLyJ3xPtfL+7faiV+YA0k4kLUc8cJ5rWFHdUShbwtkOsLhkqeDDXoFnH\/C5BG+4=<\/code><\/pre>\n<\/li>\n<li>\u0417\u0430\u0442\u0435\u043c \u043e\u043d\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0432 \u0432\u0430\u0448\u0443 SSH \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e (\u0432 <code>.step\/ssh\/config<\/code>) \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043d\u0435\u043d\u0430\u0432\u044f\u0437\u0447\u0438\u0432\u044b\u0439 \u0431\u043b\u043e\u043a:<br \/> \n<pre><code class=\"bash\">Match exec &quot;step ssh check-host %h&quot; \t\tForwardAgent yes \t\tUser carl \t\tUserKnownHostsFile &quot;\/Users\/carl\/.step\/ssh\/known_hosts&quot; \t\tProxyCommand step ssh proxycommand %r %h %p --provisioner &quot;Google&quot;<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>  \u0411\u043b\u043e\u043a <code>Match exec<\/code> \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u0448\u0435 \u0432\u0435\u0440\u043d\u0435\u0442 true.<\/p>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u0432\u0430\u0448\u0435\u043c\u0443 CA \u0438 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442, \u0435\u0441\u0442\u044c \u043b\u0438 \u0443 \u0438\u043c\u0435\u043d\u0438 \u0445\u043e\u0441\u0442\u0430, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 SHH, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442. \u0415\u0441\u043b\u0438 \u043e\u043d \u0435\u0441\u0442\u044c, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 true. \u041c\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 CA \u0445\u043e\u0441\u0442\u044b \u0432\u043c\u0435\u0448\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u0432\u0430\u0448 sconfig \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0445\u043e\u0441\u0442\u043e\u0432.<\/p>\n<p>  \u0414\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 <code>ProxyCommand<\/code> \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u044e \u043c\u0430\u0433\u0438\u044e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 Single Sign-On. \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, <code>step ssh proxycommand<\/code> \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442 \u0432\u0430\u0448 SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u0438 \u0435\u0441\u043b\u0438 \u043e\u043d \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043b\u0438 \u0438\u0441\u0442\u0435\u043a, \u043e\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u0442 \u0432\u0430\u0441 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 OAuth OIDC \u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043e\u0442 \u0432\u0430\u0448\u0435\u0433\u043e CA.<\/p>\n<p>  <i><b>\u0417\u0430\u043c\u0435\u0442\u043a\u0430:<\/b> \u0411\u043b\u043e\u043a \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432\u0430\u0448\u0435\u0433\u043e CA \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 &lt;<\/i>code&gt;\/etc\/step-ca\/templates\/ssh<i>, \u0438 \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0431\u0440\u0430\u0442\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0443 <\/i><code>ForwardAgent<\/code><i>, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u0443.<\/i><\/p>\n<h2>\u0412\u0440\u0435\u043c\u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c!<\/h2>\n<p>  \u041c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043f\u043e SSH \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u0432\u0430\u043c\u0438 \u0445\u043e\u0441\u0442\u043e\u043c. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c SSH \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>-v<\/code> \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c handshake. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0442\u0430\u043a\u043e\u0435:  <\/p>\n<pre><code class=\"bash\">debug1: Server host certificate: ecdsa-sha2-nistp256-cert-v01@openssh.com SHA256:KUwZbRewusotBbO4Wbrj1EpPexMqKEj0ZUr1Fvf41+g, serial 782 1790606781444805 ID &quot;i-0fa7218db55ac0536&quot; CA ecdsa-sha2-nistp256 SHA256:VIwnVtTJJwdUsjGaPyOS5yT1O\/uxyxj0CQJd+Ce\/w0M valid from 2020-03-2 3T16:23:32 to 2020-04-22T16:24:32 debug1: Host 'ec2-3-135-235-172.us-east-2.compute.amazonaws.com' is known and matches the ECDSA-CERT host certificate. debug1: Found CA key in \/Users\/carl\/.step\/ssh\/known_hosts:1 ... debug1: Offering public key: carl@smallstep.com ECDSA-CERT SHA256:mBQXA0znZvd+21hhvViUVEybzrO4x190xZftFXAYCFY agent debug1: Server accepts key: carl@smallstep.com ECDSA-CERT SHA256:mBQXA0znZvd+21hhvViUVEybzrO4x190xZftFXAYCFY agent<\/code><\/pre>\n<p>  \u0412\u0443\u0430\u043b\u044f! \u0423 \u0432\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.<\/p>\n<p>  <i><b>\u0421\u043e\u0432\u0435\u0442:<\/b> \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0443 CA \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0445\u043e\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u044b\u043b\u0438 \u0432\u044b\u0434\u0430\u043d\u044b \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <\/i><code>step ssh hosts<\/code><i>.<\/i><\/p>\n<h2>Q&amp;A<\/h2>\n<p>  <\/p>\n<h3>\u041a\u0430\u043a \u043c\u043d\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 CA \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0445\u043e\u0441\u0442?<\/h3>\n<p>  \u0414\u043b\u044f \u0445\u043e\u0441\u0442\u043e\u0432 Ubuntu 18.04 LTS \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u0435\u043d \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c <a href=\"https:\/\/gist.github.com\/tashian\/fde43668cbf6e3227fb13ef51db650b8\">\u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0445\u043e\u0441\u0442\u0430<\/a> \u043f\u043e\u0434 \u0440\u0443\u0442\u043e\u043c. \u0414\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u0434 \u0432\u0430\u0448\u0438 \u043d\u0443\u0436\u0434\u044b.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0432\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u0435 \u0432\u0441\u0435 \u0432\u0430\u0448\u0438 \u0445\u043e\u0441\u0442\u044b, \u0443 \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 <code>instanceAge<\/code> \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 AWS \u0434\u043b\u044f CA. \u042d\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 <code>\/etc\/step-ca\/config\/ca.json<\/code>. \u0418\u043d\u0441\u0442\u0430\u043d\u0441 \u043b\u044e\u0431\u043e\u0433\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0430\u043c \u0441\u0435\u0431\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 <code>5m<\/code>, \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043c\u0435\u0440\u0443 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0432 CA \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c IID \u0442\u043e\u043a\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 \u043c\u043e\u043b\u043e\u0436\u0435 \u043f\u044f\u0442\u0438 \u043c\u0438\u043d\u0443\u0442.<\/p>\n<p>  <i><b>\u0417\u0430\u043c\u0435\u0442\u043a\u0430:<\/b> \u0421\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c Instance Identity \u0442\u043e\u043a\u0435\u043d \u2014 \u044d\u0442\u043e \u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u0442\u043e\u043a\u0435\u043d. \u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0441\u0442, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438\u0448\u044c \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442. \u041f\u043e\u0447\u0435\u043c\u0443? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043b\u044e\u0431\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a IID, \u0438 \u043c\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0445\u043e\u0441\u0442\u0430 \u043e\u0442 CA.<\/i><\/p>\n<h3>\u041c\u043e\u0433\u0443 \u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u043c OAuth OIDC?<\/h3>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e! \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 OAuth \u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0438\u043c\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 OIDC \u0432 User Data \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u0434\u043b\u044f CA.<\/p>\n<h3>\u041c\u043e\u0433\u0443 \u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f GCP \u0438\u043b\u0438 Azure \u0432\u043c\u0435\u0441\u0442\u043e AWS?<\/h3>\n<p>  \u0414\u0430! \u0423 <code>step-ca<\/code> \u0435\u0441\u0442\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0442\u0440\u0435\u0445, \u0432\u0430\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u043d\u0435\u0441\u0442\u0438 \u043f\u0440\u0430\u0432\u043a\u0438 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e CA \u0438 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0445\u043e\u0441\u0442\u0430. \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 <a href=\"https:\/\/github.com\/smallstep\/certificates\/blob\/master\/docs\/provisioners.md\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u0432<\/a> <code>step-ca<\/code>.<\/p>\n<h3>\u041c\u043e\u0433\u0443 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0441\u0442-\u0431\u0430\u0441\u0442\u0438\u043e\u043d (\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440)?<\/h3>\n<p>  \u041c\u043e\u0436\u0435\u0442\u0435. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0434\u0430\u0439\u0442\u0435 \u0432\u0441\u0435\u043c \u0441\u0432\u043e\u0438\u043c \u0445\u043e\u0441\u0442\u0430\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u0430 \u0437\u0430\u0442\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 <code>known_hosts<\/code> \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u0431\u0430\u0441\u0442\u0438\u043e\u043d\u0435 CA \u043a\u043b\u044e\u0447 \u0445\u043e\u0441\u0442\u0430:  <\/p>\n<pre><code class=\"bash\">$ CA_URL=https:\/\/[YOUR CA].compute.amazonaws.com $ CA_FINGERPRINT=[CA FINGERPRINT] $ step ca bootstrap \\       --ca-url $CA_URL \\       --fingerprint $CA_FINGERPRINT $ mkdir -p ~\/.ssh &amp;&amp; echo &quot;@cert-authority * $(step ssh config --host --roots)&quot; &gt; ~\/.ssh\/known_hosts<\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 <code>ssh<\/code> \u043a \u0431\u0430\u0441\u0442\u0438\u043e\u043d\u0443, \u0438 \u0437\u0430\u0442\u0435\u043c <code>ssh<\/code> \u043a \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c\u0443 \u0445\u043e\u0441\u0442\u0443.<\/p>\n<h3>\u041c\u043e\u0433\u0443 \u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0440\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430?<\/h3>\n<p>  \u0414\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b 16 \u0447\u0430\u0441\u043e\u0432, \u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 CA (<code>ca.json<\/code>) \u043f\u043e\u0434 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c <code>claims<\/code>, \u0443 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 OIDC, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043d\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0440\u043e\u0447\u043a\u0430\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:   <\/p>\n<pre><code class=\"bash\">&quot;defaultUserSSHCertDuration&quot;: &quot;720h&quot;, &quot;maxUserSSHCertDuration&quot;: &quot;720h&quot;<\/code><\/pre>\n<h3>\u0411\u0443\u0434\u0443 \u043b\u0438 \u044f \u043e\u0442\u0440\u0435\u0437\u0430\u043d \u043e\u0442 \u0432\u0441\u0435\u0445 \u0441\u0432\u043e\u0438\u0445 \u0445\u043e\u0441\u0442\u043e\u0432 \u043f\u0440\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043c\u043e\u0435\u0439 CA?<\/h3>\n<p>  \u0411\u0443\u0434\u0435\u0442\u0435, \u0445\u043e\u0442\u044f SSH \u0438 SHHD \u043d\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u0441 CA \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e. CA \u0432\u044b\u0434\u0430\u0435\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0445\u043e\u0441\u0442\u043e\u0432. \u0412\u0430\u0448\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u0443 \u0431\u0430\u0437\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043d\u0443\u0436\u043d\u043e \u043b\u0438 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0442\u044c\u0441\u044f \u0441 \u0445\u043e\u0441\u0442\u043e\u043c \u0447\u0435\u0440\u0435\u0437 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430.<\/p>\n<p>  \u0414\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a CA: \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u0441\u0442\u043e\u0438\u0442 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u044b \u043a\u043b\u044e\u0447\u0435\u0439. <\/p>\n<h3>\u041c\u043e\u0433\u0443 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0441\u0442\u044b \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 AWS \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430\u0445?<\/h3>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c ID \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u0432 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 CA (<code>\/etc\/step-ca\/config\/ca.json<\/code>) \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 CA.<\/p>\n<h3>\u041a\u0430\u043a \u043c\u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 <code>sudo<\/code>?<\/h3>\n<p>  \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c agent forwarding \u0438 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Pluggable_authentication_module\">\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u043c \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438<\/a> <a href=\"https:\/\/github.com\/uber\/pam-ussh\"><code>pam_ussh<\/code><\/a>.<\/p>\n<h3>\u0427\u0442\u043e \u0435\u0449\u0435 \u044f \u043c\u043e\u0433\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e \u0441\u0432\u043e\u0435\u0439 CA?<\/h3>\n<p>  \u041c\u043d\u043e\u0433\u043e\u0435! \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u043b\u0438\u0447\u043d\u044b\u0439 CA, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c TSL \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0434\u043b\u044f <a href=\"https:\/\/smallstep.com\/hello-mtls\">\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0433\u043e \u0441\u0432\u043e\u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u0449\u0438\u0435 TLS<\/a>. \u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0437\u043d\u0430\u0442\u044c \u043f\u043e\u0431\u043e\u043b\u044c\u0448\u0435 \u043e CA, \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430\u0445, \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u043f\u0440\u043e\u0447\u0435\u043c, \u043f\u0440\u043e\u0447\u0442\u0438\u0442\u0435 <a href=\"https:\/\/smallstep.com\/certificates\/\">Step Certificates Documentation<\/a>.<\/p>\n<h2>\u041f\u043e\u0434\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438\u0442\u043e\u0433\u043e\u0432<\/h2>\n<p>  \u0421 \u043d\u0430\u0448\u0435\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432 \u0432\u0430\u0448\u0435\u0439 Google \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0442\u0435\u043c \u0445\u043e\u0441\u0442\u0430\u043c \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b, \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u043f\u043e\u0447\u0442\u044b Google.<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/itsumma\/blog\/500828\/\"> https:\/\/habr.com\/ru\/company\/itsumma\/blog\/500828\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/itsumma\/blog\/500828\/\"><b>TL;DR<\/b> \u0412 \u044d\u0442\u043e\u0442 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c single sign-on \u0434\u043b\u044f SSH \u043e\u0442 Google. \u0417\u0430 \u043a\u0443\u043b\u0438\u0441\u0430\u043c\u0438 \u043c\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f OpenID Connect (OICD), \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0440\u043e\u0447\u043d\u044b\u043c\u0438 SSH \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044f\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 SSH, \u0438 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u044b\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 <a href=\"https:\/\/smallstep.com\/certificates\/\"><code>step-ca<\/code><\/a> \u0438 <a href=\"https:\/\/smallstep.com\/cli\/\"><code>step<\/code><\/a> \u043e\u0442 Smallstep. \u041c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c SSH Certificate Authority \u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432 \u043d\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u043e\u0432\u044b\u0439 \u0445\u043e\u0441\u0442. \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u0432\u043d\u043e\u0441\u0438\u0442 \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432 \u043f\u043e\u043c\u0438\u043c\u043e single sign-on, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0442\u043f\u0430\u0434\u0430\u0435\u0442 \u043d\u0443\u0436\u0434\u0430 \u0432 \u0441\u0431\u043e\u0440\u0435, \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 <code>authorized_keys<\/code>, \u0445\u043e\u0442\u044c \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u0439 \u043f\u0430\u0440\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e\/\u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e SSH \u043a\u043b\u044e\u0447\u0435\u0439.<\/p>\n<h2>\u041a\u0430\u043a \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f SSH<\/h2>\n<p>  \u0415\u0449\u0435 \u0432 \u0434\u0430\u043b\u0435\u043a\u043e\u043c 2004 \u0433\u043e\u0434\u0443 \u043a\u0442\u043e-\u0442\u043e \u043d\u0430\u0443\u0447\u0438\u043b \u043c\u0435\u043d\u044f \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0432 \u0444\u0430\u0439\u043b <code>authorized_keys<\/code>. \u0421 \u0442\u0435\u0445 \u043f\u043e\u0440 \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b \u043d\u0435\u0432\u0438\u043d\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0441\u0442\u0430\u0440\u044b\u0439 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0438 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044f \u0437\u0430\u0431\u044b\u0432\u0430\u043b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c <code>chmod<\/code>.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-303408","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/303408","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=303408"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/303408\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=303408"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=303408"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=303408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}