Opensshd 7.0에서 바뀐점
OpenSSHD 7.0 에서 바뀐점이 있습니다. SSH 데몬이 인증을 하는 방법에는 다음과 같이 두가지가 있습니다.
- 패스워드 인증 – interactive authentication methods
- 인증키 방식
패스워드 인증 방법을 “interactive authentication methods” 라고 합니다. 그런데, OpenSSHD 7.0 에서는 root 로그인할때에는 더 이상 이 인증 방법을 지원하지 않습니다.
CentOS 7 에서 Opensshd 7.0 이상 패키지를 설치를 해서 root로 로그인을 할려고 보니 패스워드 입력 프롬프트는 나옵니다. 하지만, 맞는 패스워드를 아무리 쳐도 로그인이 안되더군요. 그래서 뭔가 바뀌었나 싶어서 Changelog 를 살펴보니 다음과 같은 문구를 보게 되었습니다.
1 2 3 4 5 6 7 8 |
* The default for the sshd_config(5) PermitRootLogin option has changed from "yes" to "prohibit-password". * PermitRootLogin=without-password/prohibit-password now bans all interactive authentication methods, allowing only public-key, hostbased and GSSAPI authentication (previously it permitted keyboard-interactive and password-less authentication if those were enabled). |
OpenSSHD 에 설정내용중에 “PermitRootLogin” 옵션이 있는데, 이전에는 이게 yes/no 를 입력하도록 되어있었지만 7.0 이상부터는 “without-password/prohibit-password” 로 변경되었고 “prohibit-password” 를 한다고 하더라도 모든 interactive authentication methods 를 차단(Ban)하고 인증키 방식을 지원한다고 되어 있습니다.
요약을 하면 root 사용자로 openssh 7.0 이상 서버에 로그인하기위해서는 인증키 방법을 이용해야 한다는 겁니다.
SSH 인증키 생성 방법.
인증키 생성은 다음과 같이 ssh-keygen 프로그램을 이용합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
]# ssh-keygen ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): <- 패스워드 입력 Enter same passphrase again: <- 패스워드 다시 입력 Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:hTKgHOAhLrRG9onwe9PaoB/68iSbtAQmxkZNw7i+NxY jejua@test2.systemv.pe.kr The key's randomart image is: +---[RSA 2048]----+ |+*+o. | |O+B+o. . | |.B=+ o . . | |=. . . o . | |+=. + . S | |=o E = | | * = . | | +.% . | | B+= | +----[SHA256]-----+ |
이렇게하면 “/root/.ssh/id_rsa, /root/.ssh/id_rsa.pub” 두개의 파일이 생성이 됩니다. id_rsa 는 private key 이고 id_rsa.pub 는 public key 입니다. public key 는 sshd_config 설정파일에 기재된 이름으로 변경해줍니다.
1 |
AuthorizedKeysFile .ssh/authorized_keys |
id_rsa.pub 를 authroized_keys 파일로 바꿔 줍니다. id_rsa 파일은 usb나 접속을 할려고하는 컴퓨터에 복사해 둡니다.
이제 다음과 같이 접속을 시도합니다.
1 |
ssh -i id_rsa root@192.168.96.6 |
ps, openssh-server 7.0 이상 패키지는 Fedora 배포판 23 버전에서 찾을 수 있습니다. Fedora 23 배포판은 7.1 버전 입니다.