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転送された資格情報を共有する
答えて
まずホストマシンでssh-agent
を実行する必要があります(例:hostm
)。多分、これはあなたのためにぼろぼろです。例えば、現在のシェルで直接プロファイル内のeval ssh-agent
経由で手動で実行することもできます。
config.ssh.forward_agent
は、true
である必要があります。
ゲストマシン内のすべてのユーザー(たとえばvagrant.box
)は、authorized_keys
ファイル内にユーザー "foo"の公開キーを持っている必要があります(ディレクトリとファイルのアクセス許可を確認してください)。
vagrant.box
のすべてのユーザーは、ForwardAgent yes
を~/.ssh/config
に設定する必要があります。
最後に、秘密鍵をhostm
のhostm
にssh-add what_ever_your_private_key_is
のhostm
にあるsshエージェントに追加する必要があります。
次に、あなたが達成するために何をしようとしているssh [email protected]
を経由して、そこssh [email protected]
ありがとう、しかし、私はこれが私が行きたいところに私を得るのか分からない。私はゲストVMの '迷惑メール'アカウントにsshしてそこから私の 'bar'アカウントにsshしたくありません。私はちょうど直接 'バー'にsshし、ホスト上の私の 'foo'アカウントから(例えば、GitHubを使うことができるように)同じ場所にsshできるようにしたい。 – Tyson
それは同じです。それがエージェントの仕組みです。エージェントには正しいキーを追加するだけです。 – slowjack2k
からあなた
hostm
からvagrant.box
にログインすることができるはずですか?あなたがSudoを使っているなら、Sudoを設定してauth sock varとすべてのものが正常に動作するようにすることができます。 – slowjack2k私は別のアカウント(root/vagrantではなく)でゲストVMにログインし、sudoなしでホストOSからSSH資格情報を使用したいと考えています。 – Tyson
もしあなたが納得できないことを訂正すれば、迷惑メールホストの内部を別の迷惑メールホストにSSHしたいのです。この場合、すべてのユーザに対して '〜/ .ssh/config'内に" ForwardAgent yes "を設定すれば十分です。 – slowjack2k