{"componentChunkName":"component---src-templates-post-template-jsx","path":"/works/posts/2021-01-22--001","result":{"data":{"site":{"siteMetadata":{"title":"Blog by Eunyoung","subtitle":"작업 기록 블로그","copyright":"© All rights reserved.","author":{"name":"EunYoung","twitter":"#"},"disqusShortname":"","url":"https://ssongey.github.io"}},"markdownRemark":{"id":"ae43d6fc-0b7e-5519-8572-77369de373dd","html":"<h3>#. SSH Key란?</h3>\n<ul>\n<li>서버에 접속 할 때 비밀번호 대신 key를 제출하는 방식이다. </li>\n</ul>\n<h3>#. 동작 방법</h3>\n<ol>\n<li>클라이언트가 서버에 SSH 연결을 요청한다.</li>\n<li>서버는 랜덤 챌린지(랜덤 데이터 스트링)를 생성해 클라이언트에게 보낸다.</li>\n<li>클라이언트는 서버로 부터 받은 챌린지(C)를 자신이 가지고 있는 private 키로 암호화해서 암호화 된 메시지를 서버로 보낸다.</li>\n<li>서버는 클라이언트에서 받은 암호화 된 메시지를 public 키로 해석한 후 그 결과를 2단계에서 자신이 클라이언트에게 보낸 랜덤 챌린지와 일치하는지 확인한다. (public 키로 해석할 수 있는 메시지는 그 쌍이 되는 private 키를 가진 사람만이 만들 수 있기 때문) 일치하면 클라이언트가 인증된 것이다.</li>\n</ol>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/12e5141213fcf1ef39927aeadfaff0ba/59000/001-01.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 917px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 25%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAABJ0AAASdAHeZh94AAAA40lEQVQY03WQbY+CMBCE+f9/7xI9z3gxcIhCTwrFvrfjbhs+SrKZpd15dtLm5SK0j1A2gntlA2lATAkhpqLIGZ++lOv1PtGwaTEesw5YSfl/I6iinpWLoZlcKe2VitmHhKfSVBuUdhW4aI9zO6BtW1xuAobSGs8gD+3qknlzkC9XluzFd71Y8dN1+Lp+49xPkARtHovB4XrH6bfDsePDOsymAiPQIDUmZcsZB9j12EucBom/WUNMAtO/RGMp0bhaHAZVhjhhzvVhXIglmSAY17gajBTgTgsYyt4b9Qx0ztMTBLwB4HSC3tOl0HoAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 01\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/12e5141213fcf1ef39927aeadfaff0ba/59000/001-01.png\"\n        srcset=\"/devHistoryBlog/static/12e5141213fcf1ef39927aeadfaff0ba/8ff5a/001-01.png 240w,\n/devHistoryBlog/static/12e5141213fcf1ef39927aeadfaff0ba/e85cb/001-01.png 480w,\n/devHistoryBlog/static/12e5141213fcf1ef39927aeadfaff0ba/59000/001-01.png 917w\"\n        sizes=\"(max-width: 917px) 100vw, 917px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br>\n<h3>#. 패스워드 없이 ssh 연결</h3>\n<h4>#1. key pair 생성 [Client Side]</h4>\n<ul>\n<li>default 로 생성 시 ~/.ssh/id<em>rsa , ~/.ssh/id</em>rsa.pub 로 생성됨</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">$ ssh-keygen</code></pre></div>\n<ul>\n<li>파일 설명   </li>\n</ul>\n<table>\n<thead>\n<tr>\n<th>파일명</th>\n<th>설명</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id_rsa</td>\n<td>private key, 서버에 패스워드 없이 접속할때 해당 key를 사용한다</td>\n</tr>\n<tr>\n<td>id_rsa.pub</td>\n<td>public key, 접속하려는 서버의 authorized_key 에 등록하면 된다</td>\n</tr>\n</tbody>\n</table>\n<h4>#2. 접속하려는 서버에 public key 등록 [Server Side]</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">$ cat id_rsa.pub &gt;&gt; ~/.ssh/authorized_keys</code></pre></div>\n<h4>#3. 접속확인 [Client Side]</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">$ scp -i ~/.ssh/id_rsa [타겟파일] [서버계정]@[서버HOST]:~/</code></pre></div>\n<br>\n<h5>#ps. 관련 디렉토리, 파일 퍼미션</h5>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">chmod 700 ~/.ssh\nchmod 600 ~/.ssh/id_rsa\nchmod 644 ~/.ssh/id_rsa.pub  \nchmod 644 ~/.ssh/authorized_keys\nchmod 644 ~/.ssh/known_hosts</code></pre></div>","fields":{"tagSlugs":["/tags/ssh-key/"],"slug":"/works/posts/2021-01-22--001"},"frontmatter":{"title":"SSH Key","tags":["ssh key"],"date":"2021-01-22","description":""}}},"pageContext":{"slug":"/works/posts/2021-01-22--001"}},"staticQueryHashes":[]}