SSHセッションにスマートカード認証を使用したい。ここで、sshセッション内でsshクライアントを使用したい場合があります。したがって、この状況:
スマートカードを搭載したデスクトップコンピューターには、Shell.provider.comへのsshセッションがあります。 Shell.provider.comからShell.provider2.comへのsshセッションがあります(この状況を「ホッピング」と呼ぶこともあります)
スマートカードがデスクトップコンピューターに挿入されています。 Shell.provider2.comへのログインにスマートカード認証を使用することは(何らかの方法で)可能ですか?
ssh-agent
を使用してスマートカードを追加し、エージェントを他のホストに転送できます。これにより、ローカルスマートカードを使用して、最初のホストから2番目のホストで認証できます。要するに:
eval `ssh-agent` # if the agent is not running yet
ssh-add -s /path/to/pkcs11.so # probably /usr/lib64/opensc-pkcs11.so
# or Ubuntu: /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so
# enter your pin
ssh-add -l # should list your smartcard
ssh -A Shell.provider.com # should not Prompt for pin
ssh Shell.provider2.com # from the Shell.provider.com
スマートカードのソリューションは、
ホストBの構成を使用して~/.ssh/config
でこれに専用の構成を使用するか、ssh呼び出しのパラメーターとして使用できます。
Host B
Hostname <the-real-hostname-for-B>
User <user>
Port 22
ProxyCommand ssh -p 22 -q -W %h:%p <the-real-hostname-for-A>
利点は、ホストのエイリアスがあり、コード補完(タイピングが少ない)があることです。
ssh <user>@B
注意:エージェントの転送は共有マシンではお勧めできません。非常に簡単です 環境変数SSH_AUTH_SOCKを介してエージェントを乗っ取ります 攻撃者がIDと認証メカニズムを乗っ取って、他のホスト。
yubikeysをスマートカードとして使用する場合、ログインなどの暗号化操作が必要なときに、スマートカードに物理的に触れる必要がある機能を使用できます。このように、攻撃者はスマートカードに物理的にアクセスして、ほとんどの場合攻撃。