2017-05-20 4 views
0

Vagrantを使用してVMを作成し、ホストOSからSSH資格情報を転送するために 'config.ssh.forward_agent = true'設定を使用していますが、ユーザーアカウント間で資格情報を共有する方法を説明します。デフォルトの「迷惑メール」アカウントには、/ tmp/ssh *の下にあるソケットファイルを指し示すSSH_AUTH_SOCK環境変数があり、動的に生成/名前付けされます。そのアカウントにsshでsetfaclを使って私の 'foobar'ユーザにrwx permsを与えると、私は自分の 'foobar'アカウントに切り替えて、同じソケットファイルを指すようにSSH_AUTH_SOCK変数を手動で設定します。しかし、これは本当にハックなアプローチのように思え、プロビジョニング中に自動的にそのことを考えることはできません。どのようにこれを正しく達成するためのアイデア?vagrantを使用してssh-agent転送された資格情報を共有する

+0

からあなたhostmからvagrant.boxにログインすることができるはずですか?あなたがSudoを使っているなら、Sudoを設定してauth sock varとすべてのものが正常に動作するようにすることができます。 – slowjack2k

+0

私は別のアカウント(root/vagrantではなく)でゲストVMにログインし、sudoなしでホストOSからSSH資格情報を使用したいと考えています。 – Tyson

+0

もしあなたが納得できないことを訂正すれば、迷惑メールホストの内部を別の迷惑メールホストにSSHしたいのです。この場合、すべてのユーザに対して '〜/ .ssh/config'内に" ForwardAgent yes "を設定すれば十分です。 – slowjack2k

答えて

1

まずホストマシンでssh-agentを実行する必要があります(例:hostm)。多分、これはあなたのためにぼろぼろです。例えば、現在のシェルで直接プロファイル内のeval ssh-agent経由で手動で実行することもできます。

config.ssh.forward_agentは、trueである必要があります。

ゲストマシン内のすべてのユーザー(たとえばvagrant.box)は、authorized_keysファイル内にユーザー "foo"の公開キーを持っている必要があります(ディレクトリとファイルのアクセス許可を確認してください)。

vagrant.boxのすべてのユーザーは、ForwardAgent yes~/.ssh/configに設定する必要があります。

最後に、秘密鍵をhostmhostmssh-add what_ever_your_private_key_ishostmにあるsshエージェントに追加する必要があります。

次に、あなたが達成するために何をしようとしているssh [email protected]を経由して、そこssh [email protected]

+0

ありがとう、しかし、私はこれが私が行きたいところに私を得るのか分からない。私はゲストVMの '迷惑メール'アカウントにsshしてそこから私の 'bar'アカウントにsshしたくありません。私はちょうど直接 'バー'にsshし、ホスト上の私の 'foo'アカウントから(例えば、GitHubを使うことができるように)同じ場所にsshできるようにしたい。 – Tyson

+0

それは同じです。それがエージェントの仕組みです。エージェントには正しいキーを追加するだけです。 – slowjack2k