로컬에서 ssh key를 생성하고, 생성된 ssh key를 서버에 등록하면 해당 서버에 접속하려는 계정의 비밀번호 입력없이 ssh 접속이 가능하다.
클라이언트는 비밀키
를 가지고 있고, 서버에 공개키
를 가지고 있도록 하여 접속하는 방식이다.
ssh-kegen
으로 공개키/비밀키
한 쌍을 생성한다.
공개키
를 접속할 서버의 ~/.ssh/authorized_keys
파일에 키값을 저장한다.
클라이언트에서 ssh userId@serverIP
로 접속 가능하다.
~/.ssh ssh-keygen -t rsa -C "EC2"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ssun/.ssh/id_rsa): /Users/ssun/.ssh/my_ssh_key #키이름
Enter passphrase (empty for no passphrase): #비밀번호
Enter same passphrase again:
my_ssh_key
와 my_ssh_key.pub
가 생성되었다. *.pub
파일은 공개키
로 접속하고자 하는 서버에 등록하면 비밀번호 없이 접속 가능하다.
cat ~/.ssh/my_ssh_key.pub
-> 내용 복사
cat >> ~/.ssh/authorized_keys
-> 공개키 붙여 넣고, 줄바꿈 -> Ctrl + D (저장)
~/.ssh ssh -i [private key name] [Username]@[Server IP address] -p [port number]
Enter passphrase for key '/Users/ssun/.ssh/my_ssh_key': #ssh key 비밀번호 입력
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-1065-aws x86_64)
ssh 접속하기 위해 다음과 같이 입력해야 한다.
ssh 계정ID@서버IP
Host Name1
HostName [IP Address]
User [Username]
Port [Port Number]
IdentityFile ~/.ssh/[private key name]
$ssh EC2