web-dev-qa-db-ja.com

スマートカード認証SSHリモートクライアント

SSHセッションにスマートカード認証を使用したい。ここで、sshセッション内でsshクライアントを使用したい場合があります。したがって、この状況:

スマートカードを搭載したデスクトップコンピューターには、Shell.provider.comへのsshセッションがあります。 Shell.provider.comからShell.provider2.comへのsshセッションがあります(この状況を「ホッピング」と呼ぶこともあります)

スマートカードがデスクトップコンピューターに挿入されています。 Shell.provider2.comへのログインにスマートカード認証を使用することは(何らかの方法で)可能ですか?

9
user3555835

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
4
Jakuje

スマートカードのソリューションは、

  • エージェント転送または
  • (scあり、なし)sshのプロキシコマンドを使用します。

ホスト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をスマートカードとして使用する場合、ログインなどの暗号化操作が必要なときに、スマートカードに物理的に触れる必要がある機能を使用できます。このように、攻撃者はスマートカードに物理的にアクセスして、ほとんどの場合攻撃。

0
r0b4x