「sshエージェントフォワード」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> [[{{PAGENAME}}]] (ssh agent forward)とは、ssh コマンドでホストを渡り歩いていくときに、アクセス元の[[ss...」)
(相違点なし)

2013年5月30日 (木) 01:11時点における版

sshエージェントフォワード (ssh agent forward)とは、ssh コマンドでホストを渡り歩いていくときに、アクセス元のssh-agentを利用して認証を行います。

読み方

sshエージェントフォワード
えすえすえいち えーじぇんとふぉわーど

概要

sshエージェントフォワード (ssh agent forward)とは、ssh コマンドでホストを渡り歩いていくときに、アクセス元のssh-agentを利用して認証を行います。

ssh-agent を利用することで、公開鍵認証sshの認証を自動化できます。

  • c1 で ssh-agent を起動する
  • c1 から ssh で h1 にログインする
c1(ssh-agent) -> h1
  • c1 の ForwardAgent が yes のときに、h1 から h2 へログインするとき、 h2 への認証は、c1 の ssh-agent が利用されます。
c1(ssh-agent) -> h1 -> h2
  • c1 と h1 の ssh の設定が ForwardAgent が yes のときに、 h2 から h3 へのログインも c1 の ssh-agent で認証されます。
c1(ssh-agent) -> h1 -> h2 -> h3

途中にパスワード認証のサーバが入っても、sshエージェントフォワード は実行できます。

  • s1 がパスワード認証だけを行なっているとします。
  • c1, s1, h1, h2 の ForwardAgent が yes の設定とします。
c1(ssh-agent) -> s1 -> h1 -> h2 -> h3

sshエージェントフォワードのセキュリティ問題

sshエージェントフォワード は、セキュリティの問題を抱えています。

ssh-agent は、ssh のために UNIXドメインソケット を作成します。 環境変数 SSH_AUTH_SOCK と呼ばれています。

SSH_AUTH_SOCK は、本来、ssh-agent の実行ユーザしか参照できませんが、root ユーザーは、アクセスできてしまいます。 そのため、SSH_AUTH_SOCK があるサーバに root 権限を持ったユーザが自分以外にいる場合は、 SSH_AUTH_SOCK を利用され、なりすまされる可能性があります。

設定

/etc/sshd/ssh_config もしは、 ~/.ssh/config で設定します。

ForwardAgent yes

ForwardAgent を設定しなくても、 ssh -A を使うことでsshエージェントフォワード することができます。

使い方

# ForwardAgent yes
ssh h1
 
# ForwardAgent no の場合
ssh -A h1

関連項目