본문 바로가기

해봐야 안다.OTL/Linux

[리눅스] SSH : 인증 키를 이용한 접속

<ssh 인증 키를 이용한 접속>

<유저생성>

[root@jo:~]#cat /etc/passwd |grep kkk

[root@jo:~]#useradd -c "SSH User" kkk

[root@jo:~]#passwd kkk

Changing password for user kkk.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

[root@jo:~]#

[root@jo:~]#

--

 

 

 

 

 

 

--> Xshell의 xftp클라이언트로 접속하여 그 계정 홈디렉토리에 아까 만든 키를 저장할 디렉토리인

/home/kkk/.ssh/ 에 키를 넣어준다.

 

[root@jo:~]#vi /etc/ssh/sshd_config

44 PubkeyAuthentication yes

45 AuthorizedKeysFile .ssh/authorized_keys

--> 사용자 키는 여러 개이기 때문에

아까 만든 이 숨김 디렉토리에 키를 저장 관리가 쉽도록

키 이름은 authorized_keys로 바꿀 것이다.

--

 [root@jo:~]#su - kkk

[kkk@jo:~]$pwd

/home/kkk

 

[kkk@jo:~]$mkdir .ssh

[kkk@jo:~]$chmod 700 .ssh

[kkk@jo:~]$cd .ssh/

[kkk@jo:~/.ssh]$pwd

/home/kkk/.ssh

 

[kkk@jo:~/.ssh]$cat kkk_rsa_1024.pub >> authorized_keys

[kkk@jo:~/.ssh]$chmod 600 authorized_keys

[kkk@jo:~/.ssh]$rm kkk_rsa_1024.pub

rm: remove write-protected regular file `kkk_rsa_1024.pub'? y

[kkk@jo:~/.ssh]$exit

 

[root@jo:~]#service sshd restart

Stopping sshd: [ OK ]

Starting sshd: [ OK ]


[root@jo:~]#vi /etc/ssh/sshd_config

59 PermitEmptyPasswords no

60 PasswordAuthentication no

 

[root@jo:~]#service sshd restart

Stopping sshd: [ OK ]

Starting sshd: [ OK ]
 



--

--> 접속해본다.

 

--> 키를 선택하고 패스워드를 입력한다.

 

--> 접속된다.

--> 이제는 키 값이 없으면 접속을 못한다.

 

*지금은 하드디스크에 키가 저장되어있다.

*이렇게 하면 안되고 xhell에 사용자 키 관리에서 키 내보내기를 클릭하여

*다른 저장매체에 넣을 수 있다.

*사용자가 요청하면 매일로 보내준다.

*개인키는 xshell에서 저렇게 만들었는데 서버에서 만들어서 보내줄 수도 있다.

 

[root@jo:~]#tail -f /var/log/secure

]Oct 28 12:49:34 jo sshd[7038]: Accepted password for kkk from 192.168.10.26 port 1982 ssh2

Oct 28 12:49:34 jo sshd[7038]: pam_unix(sshd:session): session opened for user kkk by (uid=0)

Oct 28 12:49:48 jo sshd[7027]: Received signal 15; terminating.

Oct 28 12:49:48 jo sshd[7124]: Server listening on :: port 22.

Oct 28 12:49:48 jo sshd[7124]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.

Oct 28 12:49:49 jo sshd[7040]: Received disconnect from 192.168.10.26: 0:

Oct 28 12:49:49 jo sshd[7038]: pam_unix(sshd:session): session closed for user kkk

Oct 28 12:49:58 jo sshd[7135]: Accepted publickey for kkk from 192.168.10.26 port 1983 ssh2

Oct 28 12:49:58 jo sshd[7135]: pam_unix(sshd:session): session opened for user kkk by (uid=0)

Oct 28 13:01:26 jo su: pam_unix(su-l:session): session opened for user root by kkk(uid=504)

--> ssh 에 관련된 로그를 볼 수 있다.

--

*이거를 쓰면 좋은 이유는 bruite force 공격에 대비할 수 있다.

*단순히 패스워드를 쓰면 언젠가 뚫릴 수 있다.

*하지만 이렇게 인증 키를 이용하면 알고리즘까지 다 돌려봐야 되기 때문에 bruite force

*공격에 크랙될 가능성은 현저히 떨어진다.