ssh 는 public key, password, host based 등 다양한 인증 방식을 제공하고 있으며 옵션을 통해 사용할 인증 방식을 설정할 수 있으며 기본적으로 다음 순서대로 인증을 처리함

  gssapi-with-mic,hostbased,publickey, keyboard-interactive,password
CODE



ssh client 설정

ssh config 에 설정

ssh 의 개인 설정 파일인 ~/.ssh/config 파일에 호스트 정보와 선호하는 인증 방식을 지정하며 여러 인증 방식을 사용할 경우 우선 순위가 높은 순서로 적어주면 됨. 아래는 publickey 인증을 시도하고 실패할 경우 password 인증을 사용.

~/.ssh/config

Host example
    HostName example.com
    User ec2-user
    Port 10022
    PreferredAuthentications publickey,keyboard-interactive,password
    IdentityFile ~/.ssh/example/id_rsa
CODE


ssh 로 연결할 경우 Host 에 지정한 이름을 alias 로 사용.

ssh example
CODE


command 에서 옵션으로 지정


id/password 

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no ec2-user@example.com
CODE


public key 

사용하는 개인키 명이 ~/.ssh/id_rsa 가 아닐 경우 -i 옵션으로 개인키 지정 필요

ssh -o PreferredAuthentications=publickey -o PasswordAuthentication=no -i ~/.ssh/example/id_rsa ec2-user@example.com
CODE


ssh 서버 설정

보안을 위해서는 공개키 방식만 사용하는 것이 좋지만 특정 사용자만 패스워드 방식이 필요할 경우 Match 키워드 사용해서 지정

/etc/ssh/sshd_config

PubkeyAuthentication
PasswordAuthentication no

# 접속을 허용할 사용자 계정
AllowUsers lesstif centos7 ec2-user


# lesstif, centos7 사용자만 암호 로그인 허용
Match User lesstif,centos7 
    PasswordAuthentication yes
CODE

Match 키워드는 설정 파일 맨 아래에 위치해야 함


같이 보기


Ref