ssh로 비밀번호 없이 자동으로 로그인하는 방법
ssh 자동 로그인은
인증에 필요한 패스워드를 파일에 저장시켜서 RSA 암호방식으로 암호화 한 후
접속 때 해당 파일을 참조해서 자동 인증하는 과정이다.
이를 위해서 먼저 RSA 키를 생성해야 한다.
명령어는 다음과 같다.
1. # ssh-keygen
2. # ssh-copy-id 로그인대상계정@ip
1. ssh key는 RSA 암호방식으로 private , public 키를 생성한다.
각각의 키는 .ssh 디렉토리 안에 id_rsa(비밀키) , id_rsa.pub(공개키) 파일로 저장된다.
※ RSA암호 방식은 비대칭키로서 비밀키와 공개키를 가지게 된다.
비밀키는 암호화할 때 , 공개키는 복호화 할 때 사용된다.
2. id_rsa.pub(공개키)를 자동로그인 대상 컴퓨터에게 전달해야 한다.
ssh-copy-id를 통해서 공개키를 대상 컴퓨터에게 전달한다
( 로그인 대상 컴퓨터의 .ssh 디렉토리에 authorized_keys 파일 내용 뒤에다 공개키를 붙여넣게됨 )
위 동작은 한마디로
A가 [Private key , Public Key]를 가지고 있는데
B에게 공개키(Public Key)가 추가되면
비밀키를 가지고 있는 A가 B컴퓨터에 로그인 하는것을 허용한다는 의미이다.
ssh 접속 동작원리는 다음과 같다.
1. SSH Client가 SSH Server에 접속을 요청한다.
2. 서버는 랜덤 키를 클라이언트에 보낸다.
3. 클라이언트는 받은 랜덤 키를 비밀키를 이용해서 암호화한 후,
암호화한 파일을 서버에 보낸다.
4. 서버는 받은 암호화 파일을 공개키로 복호화한 후,
복호화한 파일이 클라이언트에게 보냈던 랜덤 키와 일치하면 접속을 허락한다.
복호화한 파일이 클라이언트에게 보냈던 랜덤 키와
일치할 때 접속을 허락한다.
패스워드를 파일에 저장한 후 RSA방식으로 암호화 시켜서
그 파일을 가지고 로그인 하는것이 그냥 로그인하는것 보다 더 안전할 수 있다.
자동인증은 로그인이 필요한 rsync(동기화)를 할 때 유용하다.
'OS-서버 > 리눅스-유닉스' 카테고리의 다른 글
유닉스 파티션 분할 - 포맷 (0) | 2017.09.26 |
---|---|
[유닉스-솔라리스] 비밀번호 잊어버렸을 때 (0) | 2017.09.02 |
쉘 시작시 특정 명령 실행하기 (0) | 2017.07.25 |
[리눅스] 가상호스트(VirtualHost) (0) | 2017.07.05 |
[리눅스] DNS(네임서버) 구축 (0) | 2017.07.03 |