Conoha vm 생성기에서 ssh 키 등록을 하라고 했었다.
그냥 하면 좋다고만 하면 좀 무책임한 것 같아서 하는 이게 뭔지 어떻게 쓰는지 글을 좀 남겨봐야겠다.
우선 ssh 키를 등록한다는건 제일 쉽게 설명하면 패스워드 손으로 안치고 파일을 사용하겠다는 뜻이다.
이게 정말 단순히 생각하면 보통 key 파일 크기가 최소 512비트 즉 64바이트다. 대충 64자를 패스워드로 사용하겠다는 건데….
비밀번호 보통 좀 심하게 체크한다는데가 10자 정도니까 단순히 생각해봐도 80비트, 그러면 432비트를 더 패스워드로 사용하겠다는 건데 2^432승이 된다.
안전도가 기하급수적으로 높아진다는 거다.
근데 사실 ssh 키는 단순히 패스워드 대체 수단이 아니라 공개키알고리즘 (RSA) 라는 거다. RSA 는 저 알고리즘 만든 세명의 이름을 따서 만든건데,
대충 설명하면 키가 두개고 하나는 공개해도 되는 공개키이고 하나는 나만 알고 있어야 하는 개인키이다.
공개키로 암호화 하면 개인키로만 복화화 할 수 있다. 그래서 공개키는 아무대나 막 뿌려도 상관없어요~
아… 내가 원래 보안 연구실 출신이라 알고리즘 설명이 기똥찬데 귀찮은지 패스
(절대로 잘 기억이 안나거나 모르겠거나 그런건 아니다….ㅠ .ㅠ 아마도 ㅠ. ㅠ)
RSA 알고리즘이 어떤 것인지 궁금하신 분은
https://ko.wikipedia.org/wiki/RSA_암호
이곳을 참조해 주세요~
여튼 가성 머신(VM, VPS 등)을 만들거나 개인서버를 운영할때 RSA 방식의 ssh를 사용하면 훨씬 안전하다는 것을 알 수 있을 것이다.(RSA의 경우 슈퍼컴퓨터를 이용해도 시간이 한첨 걸려요)
conoha vm 만드는 과정 기억에서 ssh 입력 하거나 만들어 지는 부분이 있었다.
다시 한번 설명하면
마지막에 SSH Key 부분인데 사용안함을 하면 그냥 패스워드 기반의 VM 을 만들어 주겠다는 것이고
등록완료 key라고 하면 기존에 만들어져있던 키를 이용해서 vm을 만들어 주겠다는 것이고
신규 key 등록을 선택하면 새로운 키 쌍을 만들어서 vm을 생성해 주겠다는 뜻이다.
여기서 key를 사용하는 두 경우 (등록완료 key, 신규키) 생성할 vm의 ~/.ssh/authorized_keys 에 보면 키쌍중 퍼블릭 키를 등록해 준다.
등록완료 key같은 경우 이미 사용중인 키를 넣고 있었던 것이니 큰 상관 없을꺼고,
신규key 등록 같은 경우 해본적은 없지만 아마도 vm 생성할때 파일 하나를 다운로드 하게 해줄 것이다. 이게 개인용 키인 것이다.
다시 말하면 여기서 키를 넣지 않았다고 하더라고 나중에 ~/.ssh/authorized_keys 파일을 생성해서 여기에 이미 가지고 있는 혹은 새로 만든 키 페어중 공개키를 넣어주면 된다.
추가로 설명하자면 저 파일은 사용자만 읽을수 있는 권한인 600으로 해줘야 한다. 하는 방법은 chmod 600 ~/.ssh/authorized_keys 이다.
키 생성은 어떻게 하냐고 묻는다면, 계산하세요~~!! 라고 할 순 없으니, 방법을 알려주자면
linux 들은 키 생성 툴을 제공한다.
linux 에 접속해서 ssh-keygen 을 실행한다.
하고 그냥 엔터엔터엔터만 쳐도 생성이 된다
===========================================
test@111:~$ ssh-keygen <== 키 생성
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa):
Created directory ’/home/test/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
The key fingerprint is:
33:09:e8:56:6e:ba:8b:7f:c2:5d:e1:10:d3:26:87:6d test@1111
The key’s randomart image is:
+–[ RSA 2048]—-+
| + |
| .= E |
| . oB |
| . o…. |
| o ooS. |
| . o oo |
| … . |
| .o.o |
| ..++ |
+—————–+
test@133-130-117-94:~$ cat ~/.ssh/id_rsa.pub <==공개키 확인
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbrwkDyhCyVbIE4SDeWgSKPcf2h/BXb4rIlkvrHrECbysWtqKLfbtCmHt73gSQU40Wty4iO56oDXeEUk1Q42YevIt8n9XPDdzIZycT0WrRTugW7vGNpMsOJcXPnOpa1qe+kRHoVzEc8z2vjJkGWhqr2ZHYzePirPY6P5l5elPgRq38W0rvpD3tEmtS+jzN0fz2g8yZuBalBt3hD4nC4AZHPetATR5/lur8t97qq7BbT2uYCukye53G4roMeidAA60BfZloAQvldTDOXY43ZQ2AKtseNbR3OFgGfQrNRC1UZyyqXyLfhondzN3OROiw0WypZ4nRaJSrQZX2HDO4IkbV test@111
test@11111111:~$ cat ~/.ssh/id_rsa <== 개인키 확인(밑에 내용보다 길꺼에요, 제가 좀 지워서)
—–BEGIN RSA PRIVATE KEY—–
MIIEpAIBAAKCAQEA268JA8oQslWyBOEg3loEij3H9ofwV2+KyJZL6x6xAm8rFrai
i327Qph7e94EkFPMmbgWpQbd4Q+JwuAGRz3rQE0ef5bq/Lfe6quwW09rmArp
MnudxuK6DHonQAOtAX2ZaAEL5XUwzl2ON2UNgCrbHjW0dzhYBn0KzUQtVGcsql8i
34aJ3czdzkTosNFsqWeJ0WiUq0GV9hwzuCJG1QIDAQABAoIBAQClGHIJ6v2JSGW0
zQvKjpQC4FM6rwasbyM5g9oiJLqaPbmAJFkbw63LapTCjiOX43KQs7F0AKJHYXeE
deWs+HhyePfK/MKjJYUiOzjnBpyUSeX8Tnc/h+QPmEnHb
DmqUvLmz2gjNn6yao7shacKOcKge3rhQKL3PbvJD0CxxQYC5/DIfA9/Sn1UUm7Nb
PJMwglchIxZ3QqcQun4OXQpBdq01mEIeJnVTQJgtAoGBAJk04ea5ZQi0/XM4fKkw
dWdc+xuaQGqPCCIKmmyQRpD5Uf+Vk/wHtE38Io0zcn93/qCXKDHLipE6ofTWkUF7
g+6+4AWsZujojLjQLDCPthUUsD7eM+TK208jzmsTClky+rS37z1aRgIpEXh/pGN6
q+eBmoiBwFiV1GonicdaM+BuMoAGhQbrOP/VdcF/QtcFtnQA9S9xOIMbAdCzrFCkT
BGdsJw+p/FqGy7FRzmT1nly4FckMAxEaqpDMedbT3DLUaTtnSL0hzxbF0BFB0xS+
TjhP76jIBgVzuCUVFSVYMFhbxHu3TdXRt5wDu2xAinqladg355/7Ug==
—–END RSA PRIVATE KEY—–
test@11111:~$
====================================================================
혹시나 걱정하시는 분을 위해 말씀드리자면, 저는 저 패스워드 쌍을 사용하지 않으며, 값도 변조되어있습니다.
위처럼 쉽게 생성이 가능하다. 물론 추가 옵션을 넣어서 더 멋지고 튼튼한 패스워드를 만들수도 있지만, 그건 설명하지 않겠다(나도 안해보거나 그런건 아닐껄?)
나중에 이제 id_rsa.pub파일을 authorized_keys로 카피해 놓으면 나중에 개인키로 접속이 가능하다.
ssh -i id_rsa xxx.xxx.xxx 이런식으로 나중에 접속하면 id_rsa란 개인키로 xxx.xxx.xxx.xxx에 접속하겠다는 뜻이다.
일반적으로 많이 사용하는 putty 같은 경우 아 나는 맥유저라… 설명 못하겠다.
링크로 대처
http://www.badayak.com/3353 <== 그림까지 있어서 쉬워보여서 캡쳐!!
여튼 잘 ssh 로 잘 사용하세요!
시원하게 이해되네요 감사합니다