Linux

sftp 접속시 key 인증으로 접속하기 (패스워드 미입력)

말괄량이현이 2017. 11. 20. 17:11
A 서버 sam 계정에서 B 서버 top 계정으로 sftp 접속시 패스워드 없이 접속 하려고 할때 다음과 같은 작업이 필요합니다.

A 서버에서 접속하려는 계정으로 ssh key 가 존재해야합니다.

인증키 부터 생성해야 합니다.

$ ssh-keygen -t rsa -b 2048

[옵션]
-t : 어떠한 암호화 방식을 사용 할 것인지를 지정
-b : 생성할 키 비트수 지정. 최소 768비트가 필요하며 디폴트 값으로 2048비트로 설정되어 있음

다음과 같이 키를 생성했다면 각 계정의 홈디렉토리의 .ssh 폴더에 생성됩니다.

drwx------  2 sam sam 4096 2017-11-16 09:08 .
drwxr-xr-x 17 sam sam 4096 2017-11-17 11:54 ..
-rw-------  1 sam sam 1679 2017-11-16 09:08 id_rsa
-rw-r--r--  1 sam sam  404 2017-11-16 09:08 id_rsa.pub
-rw-r--r--  1 sam sam 1581 2017-11-20 16:19 known_hosts

해당 id_rsa.pub 를 확인 합니다.

[sam@Client /home/sam/.ssh]cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZbCYZqcFGAoSEsS4nXjaQIHA9x9sVR0RZSgLbSmd8DIAFUY++pbdIrckQITdmRTaVmFo4UgKaNEoSRHGiOyf40ThJ8mTBAFFdxRr2HW+cEPDsnEqQZAm+K68MyVrezk794N7AmTJckxjF7dIkQFKtQxvHbTQq//WV5WyY4w38kVxVWbKF4nJgVcFPqFgt5SqjovGv+vRf5xIG1L7lBTVQKl6CvJrwo6a6JQHQ1nrOFOTDl8dNSfDsKYOEAmBc3+8mb4HDd57Sppb+/Vwue5cdQ1I+rlVChsogYBuwTeqWCCF8JDMxrASnN9VZwxnpkN7Adv4q9TfuanrZYSkhAq1V A@sam

해당 부분을 복사 합니다.

B 서버에서 top 계정의 home 디렉토리로 갑니다.

[top@Server /home/top]# ll -al
합계 28
drwx------. 3 top top 4096 2017-11-20 16:26 .
drwxr-xr-x. 6 root  root  4096 2017-11-15 14:16 ..
-rw-------  1 top top  920 2017-11-20 16:24 .bash_history
-rw-r--r--. 1 top top   18 2014-10-16 22:56 .bash_logout
-rw-r--r--. 1 top top  176 2014-10-16 22:56 .bash_profile
-rw-r--r--. 1 top top  124 2014-10-16 22:56 .bashrc
drwxr-xr-x  2 root  root  4096 2017-11-20 16:26 .ssh

[top@Server /home/top/.ssh]# ll 
합계 8
-rw------- 1 root root 546 2017-01-06 00:24 authorized_keys
-rw-r--r-- 1 root root 786 2017-10-25 09:14 known_hosts

authorized_keys 파일에 위의 key 값을 복사해서 넣어둡니다.

※ 혹시 접속하려는 서버에 .ssh 파일이 없으신분은.. 그냥 경로 만드시면 됩니다. 물론 authorized_keys 도 없을테니 파일 만드시면 됩니다.

[top@Server .ssh]# vi authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZbCYZqcFGAoSEsS4nXjaQIHA9x9sVR0RZSgLbSmd8DIAFUY++pbdIrckQITdmRTaVmFo4UgKaNEoSRHGiOyf40ThJ8mTBAFFdxRr2HW+cEPDsnEqQZAm+K68MyVrezk794N7AmTJckxjF7dIkQFKtQxvHbTQq//WV5WyY4w38kVxVWbKF4nJgVcFPqFgt5SqjovGv+vRf5xIG1L7lBTVQKl6CvJrwo6a6JQHQ1nrOFOTDl8dNSfDsKYOEAmBc3+8mb4HDd57Sppb+/Vwue5cdQ1I+rlVChsogYBuwTeqWCCF8JDMxrASnN9VZwxnpkN7Adv4q9TfuanrZYSkhAq1V Client@sam

접속을 시도해 보면 다음과 같이 패스워드를 물어보지않고 바로 접속 가능합니다.

[sam:/home/sam/.ssh]sftp top@192.168.0.2
Connected to 192.168.0.2.
sftp>