사용자 로그인에 2단계 인증 추가

사용자 로그인에 2단계 인증 추가
trap '' 2

code=`oathtool --base32 --totp "xxxxxxxxxxxx"`
echo -n Enter Code:
read -s password
echo ""
if [ "$password" == "$code" ]; then
        echo "You are allowed in"
else
        exit
fi

trap 2

2단계 인증을 추가하는 다른 방법 위에 이 코드를 추가하시겠습니까 .profile? 아니면 우회할 수 있나요?

나는 당신이 다음과 같은 일을 할 수 있다는 것을 알고 있습니다이것이중 인증을 추가했는데 맞춤설정할 수 있었으면 좋겠습니다.

답변1

아니요!

기본적인 문제는 .profile로그인에 성공한 후에만 읽을 수 있다는 것입니다! 이 시점에서는 전체 셸이 이미 실행 중이며 대부분의 셸이 사용자에게 서비스를 제공하고 있습니다.아니요그들이 원하는 것은 무엇이든 하지 못하게 하십시오.

예를 살펴보겠습니다:

# echo -en "echo byebye; exit"  > ~foo/.profile
# ssh foo@localhost
foo@localhost's password: 
[...]
byebye
Connection to localhost closed.

하지만 여전히 쉘에게 완전히 다른 작업을 수행하도록 지시할 수 있습니다. (다른 쉘을 실행하는 것과 같습니다.)

# ssh foo@localhost -t "/bin/sh"
foo@localhost's password: 
$ id
uid=1001(foo) gid=1001(foo) groups=1001(foo)

할 수 있다사용자의 셸을 OTP를 요청하도록 설계된 보다 제한된 프로그램으로 변경한 다음 셸을 시작합니다. 그러나 이렇게 하면 다른 셸을 실행해야 하는 작업을 수행하기가 어려워집니다. 또한 사용자 도메인 내에서 수행된 모든 작업은 사용자에 의해 다시 변경될 가능성이 높으며 이는 일반적으로 인증을 통해 달성하려는 작업이 아닙니다.

대부분의 Linux에서 PAM인 해당 위치를 인증하세요.

관련 정보