[linux] ssh key를 생성하고 ssh의 키 인증 방식으로 접속하는 방법.
2021. 9. 12. 17:14ㆍOperatingSystem/linux
728x90
728x90
*ssh 키 인증 접속 설명.
- 접속하려는 서버 계정의 패스워드를 입력하지 않고 ssh 접속(키 인증 방식)이 가능함.
- 클라이언트 노드는 비밀키/공개키를 가지고 있고 서버 노드는 클라이언트 노드의 공개키를 가지고 있을 때, 사용할 수 있는 ssh 접속 방법(키 인증 방식)임.
*ssh 키 인증 접속 방법.
- 클라이언트 노드에서 "$ssh-keygen ..." 명령을 수행하여, 클라이언트 노드의 공개키와 비밀키를 생성.
- 생성된 클라이언트 노드의 공개키 파일의 값을 서버 노드의 "~/.ssh/authorized_keys" 파일에 저장.
- 클라이언트 노드에서 서버 노드로 "$ ssh ..." 접속 시도.
*ssh 인증 키 접속 수행.
클라이언트 노드에서 $ ssh-keygen 명령어를 수행하여, private key(id_rsa), public key(id_rsa.pub) 생성.
- -t 옵션의 인자로 dsa, ecdsa, ed25519, rsa ... 암호화 알고리즘을 선택할 수 있음.
$ ssh-keygen -t rsa
private key(id_rsa), public key(id_rsa.pub) 저장 위치 설정.
Enter file in which to save the key ($HOME/.ssh/id_rsa):
private key(id_rsa), public key(id_rsa.pub)의 암호 설정.
- 자동 로그인을 수행하려면, 생략해야 함.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
$ ssh-keygen -t rsa 수행.
- 키의 저장 위치와 암호를 설정하지 않았을 때의 로그.
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key ($HOME/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ~/.ssh/id_rsa
Your public key has been saved in $HOME/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:IKCrXeS7mISQ3s95cv01Ljc9uSdDdJ6ocKGTmx0vv/Q whoami@`hostname`
The key's randomart image is:
+---[RSA 3072]----+
| . |
| . . |
|. o . |
| o o . . . . .|
|+ o S o ...o.|
|+o.. . = o ....|
|o.o.. . B +=. .|
| . ooo.o + =++=+.|
| o .++ ..=+oE+|
+----[SHA256]-----+
생성된 비밀키(id_rsa)와 공개키(id_rsa.pub)를 확인.
$ ls -al ~/.ssh
total 20
…
-rw-------. 1 whoami 2602 Sep 10 05:05 id_rsa
-rw-r--r--. 1 whoami 567 Sep 10 05:05 id_rsa.pub
-rw-r--r--. 1 whoami 807 Jul 9 05:37 known_hosts
클라이언트 노드의 공개키(~/.ssh/id_rsa_pub)를 출력 후 출력된 내용을 복사.
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3W+CS11LhZkpjOFect1X5A0171A8a2n2bmbw5xjfp0AN6efXBBans+GENKUXi2PU17WBqAeecb4jL4HnPABa0plECjbd9iXHoB4IyKF5CiStaO6EiNjT9yyKQImG8DTOfBtv81cL38f9Asp+v3v0g61LS2jJAAgi102tEo/mjvpIQTo2KGADKckJAHfz259g0KqqR+T8Jei+8WESRZiA+uFYpM7JbEkUem0T0e8OwCT1HVFDNdYZitl/mkFszd1VqL4psQMoeEsQWZeEXY32m6mccU44qoG2ZT2K4tgdPdpqHmtPjTPdI9hwYCFCO9ZwpbFekIXt/grII2WtkoOG5lK7qPFi+/mkkgJ8Eal3FYwpTrrHUDyz2K/CXQdRypf3MKa0sz+RUFtVC3wVdFqVPUk3SbZ2wBwFjeaPWezcmkGEZk+9ONKAkKQVrh6zKKR9HSfpZ54Sj6rJHqvjo7adCWP2sZ/9DNiAZuPdANcEX9wiDm0pLt0148EHTFSnSeF0= whoami@`hostname`
서버 노드의 ~/.ssh/authorized_keys 파일에 복사한 내용을 붙여넣고 저장.
$ cd ~/.ssh
$ vi authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3W+CS11LhZkpjOFect1X5A0171A8a2n2bmbw5xjfp0AN6efXBBans+GENKUXi2PU17WBqAeecb4jL4HnPABa0plECjbd9iXHoB4IyKF5CiStaO6EiNjT9yyKQImG8DTOfBtv81cL38f9Asp+v3v0g61LS2jJAAgi102tEo/mjvpIQTo2KGADKckJAHfz259g0KqqR+T8Jei+8WESRZiA+uFYpM7JbEkUem0T0e8OwCT1HVFDNdYZitl/mkFszd1VqL4psQMoeEsQWZeEXY32m6mccU44qoG2ZT2K4tgdPdpqHmtPjTPdI9hwYCFCO9ZwpbFekIXt/grII2WtkoOG5lK7qPFi+/mkkgJ8Eal3FYwpTrrHUDyz2K/CXQdRypf3MKa0sz+RUFtVC3wVdFqVPUk3SbZ2wBwFjeaPWezcmkGEZk+9ONKAkKQVrh6zKKR9HSfpZ54Sj6rJHqvjo7adCWP2sZ/9DNiAZuPdANcEX9wiDm0pLt0148EHTFSnSeF0= whoami@`hostname`
클라이언트 노드에서 서버 노드로 $ ssh ... 접속 시도.
- -v 옵션을 통해서, 접속 과정을 자세하게 확인.
- public key 방식과 생성한 id_rsa를 사용하여, 접속한 것을 확인.
- 패스워드 인증 없이 접속한 것을 확인.
$ ssh -v [서버 노드의 계정]@[서버 노드의 IP]
...
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering RSA public key: ../.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug1: Authentication succeeded (publickey).
Authenticated to ... ([...]:...).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug1: Sending environment.
debug1: Sending env LANG = ko_KR.UTF-8
debug1: Sending subsystem: sftp
Connected to . ...
sftp> quit
728x90
728x90
'OperatingSystem > linux' 카테고리의 다른 글
[linux] vi에서 코드를 정렬하는 방법. (0) | 2021.11.11 |
---|---|
[linux] "'kr.archive.ubuntu.com'의 주소를 알아낼 수 없습니다" 에러 해결 방법. (0) | 2021.10.14 |
[llinux] ".ssh/known_hosts"? (0) | 2021.09.10 |
[linux] root 계정의 ssh 접속 허용 설정하는 방법. (0) | 2021.09.04 |
[linux] vi에서 붙여넣기 수행했을 때, 계단 현상 & 깨짐 현상 해결 방법. (0) | 2021.08.28 |