ssh (secure shell)
ssh는 secure shell의 약자로 네트워크 상에서 암호화된 통신을 위한 프로토콜 (및 이를 구현한 프로그램)을 가르킴.
주로 원격지의 장비에 보안이 보장된 접속을 제공하며 이를 위해 암호화 및 인증을 사용함.
이를 위해 ssh는
- password 기반의 인증과
- private and public key 기반의 인증,
- time based 인증 등의 다양한 방법을 제공한다.
과거에는 간단한 password 기반의 인증이 가장 많이 사용되었으나,
최근에는 주로 private key와 public key를 이용한 방식이 사용됨.
ssh-keygen
ssh-keygen은 ssh에서 사용되는 private key와 public key를 생성 및 관리, 편집 하는 프로그램임.
이를 통해 ssh에서 사용할 private key와 public key를 생성할 수 있음.
- private key :
- 사용자의 장비에 저장되며, 이 key를 이용하여 자신을 인증함.
- public key :
- 대응되는 private key가 있는 public key는 사용자의 인증이 필요한 원격지의 서버에 저장됨.
- 해당 public key를 통해 대응되는 private key를 가진 사용자인지를 확인할 수 있고, 보안을 위한 접속등에서 요구되는 암호화등에서 사용되게 됨.
사용법.
기존 ssh 키 확인하기
현재 장비에서 ssh 를 위한 key가 있는 지를 다음을 통해 확인 가능함.
ls -al ~/.ssh
# dir %userprofile%\.ssh #for windows
- 자신의 home directory를 의미하는
~
밑에.ssh
라는 이름의 directory에 일반적으로 ssh 를 위한 key파일들이 위치함.
이미 private key 와 public key를 가진 경우 다음의 이름들의 파일을 확인할 수 있음.
id_rsa.pub
id_ecdsa.pub
id_ed25519.pub
- extension이
.pub
가 있으면 public key파일이며, 같은 이름이면서 extension이 없으면 private key임. - 위의 이름들의 차이는 키를 생성한 암호 알고리즘에 따라 차이가 난다.
- 가장 안전한 최신의 알고리즘으로
ed25519
를 사용하는 것을 권하는 경우가 많으며, 아직까지rsa
도 많이 사용된다.
ssh 키 생성하기
ssh 키가 없다면, ssh-keygen
을 통해 생성한다.
ssh-keygen -t rsa -C "사용할email주소"
-t
: 키를 생성할 때 사용할 암호 알고리즘을 지정함. 여기선rsa
를 사용했지만 최근엔 많은 경우ed25519
를 추천한다.-C
: 해당 키의 소유자의 이메일 주소.@
이 포함된 유효한 이메일 경로명을 넣어주면 된다.
이후 키가 놓일 path를 물어보는데 그냥 enter를 입력하면 기본 경로인 ~/.ssh
를 사용하게 된다.
키에 대한 암호(passphrase
)를 물어보는데 여기서도 enter를 입력하면 키에 대한 암호가 설정되지 않는다(가급적 암호를 입력하자.)
해당 암호에 대한 질문은 확인을 위해 한번 더 물어본다.
같이 읽어보면 좋은 자료들
보다 자세한 내용은 다음 url을 확인하라.
https://docs.github.com/ko/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
windows 관련 자료
https://learn.microsoft.com/ko-kr/windows-server/administration/openssh/openssh_keymanagement
'utils > git and github' 카테고리의 다른 글
[git] branch : branch를 생성하거나 확인 또는 삭제 및 변경 (0) | 2023.12.30 |
---|---|
[git] revert : 특정 commit 취소하기. (1) | 2023.12.30 |
[git] .gitignore : 특정 resources를 git으로부터 격리. (1) | 2023.12.30 |
[github] ssh 키 등록하기. (0) | 2023.12.27 |
[Git] git 에서 editor 로 VS Code 사용하기. (0) | 2023.06.20 |