ユーザーログインに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である場所を認証します。

おすすめ記事