SSH 로그인OS : CentOS Linux release 7.8 다른 서버에 접속하기 위해 SSH 프로토콜을 사용한다. 매번 비밀번호를 입력하고 접속하는데 이러한 과정을 ssh-keygen으로 공개키를 이용해서 생략할 수 있다. 아래 실습 내용은 222.111.71.201 root계정에 비밀번호 입력 없이 로그인하는 것을 목표로 합니다. 222.111.71.200 root 계정에서 생성한 공개키를 보내 환경구성합니다. Permission denied (publickey,gssapi-keyex,gssapi-with-mic)위와 같이 Permission denied 오류가 발생합니다. ssh 연결은 공개키를 이용한 접속과 비밀번호를 이용하는 접속으로 크게 두가지가 있는데 기본 설정에서 ssh를 비밀번호로 연결을 허용하지 않기 때문에 발생하는 오류입니다. sshd_config 파일을 수정해서 해결할 수 있습니다.
접속하려는 서버에서 sshd_config에서 PasswordAuthentication을 yes로 변경해주고 sshd를 재시작해 줍니다.
ip로 접속할때 비밀번호를 물어보고 접속이 가능합니다. 공개키를 이용한 ssh 로그인, ssh-keygen 사용적은 수의 서버를 관리한다면 크게 문제가 없을 수 있지만... 여러대의 서버를 관리할 때는 보안적인 측면과 효율성을 위해 공개키를 생성하여 접속하려는 서버에 복사해 비밀번호 없이 로그인하는 방법을 선택할 수 있습니다. 공개키 생생
명령을 실행하면 공개키가 저장될 파일 경로와 passphrase를 지정해줘야 합니다. -t 옵션은 타입을 지정하는 옵션입니다. 222.111.71.200 서버 root 계정에서 생성하기 때문에 해당 계정에 대한 공개키입니다.
-f 옵션은 공개키 파일을 지정할 수 있고 -N 옵션은 passphrase를 설정할 수 있다. 만약 기존에 생성한 키가 있다면 덮어쓸지 되물어본다.
'<' 기호를 사용해서 해당 부분도 바로 넘어갈 수 있습니다. 공개키 Host 전송
접속하려는 서버에 공개키를 먼저 보냅니다. 공개키 등록
.ssh(700) 경로나 authorized_keys(644) 파일이 없다면 생성해줍니다.
공개키를 등록해줍니다.
비밀번호 입력없이 로그인이 가능합니다. 위의 방법대로 접속하려는 서버에 고개키를 보내고 등록하여 비밀번호 없이 접속이 가능합니다. ssh 키 인증으로 접속하는 환경 구성은 직접 접속하기 위한 이유도 있지만.... ansible이나 Foreman같이 다른 툴에서 유용하게 사용하기 위해서 사용되기도 합니다. 공개키 Remote 등록위의 과정대로 공개키 파일을 이동시키고 직접 붙어서 등록하는 방법도 있지만... 이러한 방법을 자동으로 해주는 명령어도 있습니다.
ssh-keygen help 참조1. 클라이언트에서 ssh-keygen 명령으로 ssh-key를 생성한다. [root@localhost root]# cd /root/.ssh/ – 생성된 id_rsa.pub 파일을 서버에 복사한다. 서버에 복사할 때는 접속하려는 계정의 홈 디렉토리 내에 .ssh/authorized_keys라는 파일 명으로 복사해 넣는다. 만약 여러대의 클라이언트에서 서버에 패스워드 없이 접속을 하기 위해서는, 각각의
클라이언트에서 key를 생성하고, id_rsa.pub 파일의 내용을 서버의 authorized_keys 파일에 추가해서 붙여 넣으면 된다. [root@localhost .ssh]# scp id_rsa.pub 10.30.100.32:/root/.ssh/authorized_keys [root@localhost .ssh]# ssh 10.30.100.32 lo
Link encap:Local Loopback [root@localhost ~]# – 만약 접속이 불가능 하다면, 서버의 sshd_config(/etc/ssh/sshd_config) 파일에서 아래의 사항을 확인한다. 주석처리가 되어 있을 경우 주석을 제거하고 ssh데몬을 재시작 한 후에 접속 테스트를 한다. PubkeyAuthentication
yes |