意図: あらゆる開発環境からデプロイできるようにしますlan-example.com
。仮想 OS から直接デプロイすることも、単一の OS システムからデプロイすることも、Keepass に保存されている 1 つの SSH キーを使用してインターネット経由でデプロイすることもできます。現在、Vagrant の OS 内からこれを行うには、明示的に独自のキーを生成し、各デプロイ サーバーで認証する必要があります。必要な操作を実行するには、ユーザー エージェント転送を使用する方法があると思いますが、どうでしょうか?
ホストOS
- Windows 7 x64
- puttygen によって生成された SSH キー:
C:\Users\Administrator\.ssh\id_rsa.ppk
- Keeagent で SSH キーを保存している Keepass。Keeagent は「エージェント」モードに設定されています。
- pageant.exe はインストールされていますが、実行されていません
- 自分のキーを使用して外部/内部 LAN サーバーに接続したい場合、Putty は Keeagent に従います。Putty は設定内に秘密キーの場所を保存しません。
C:\Users\Administrator.ssh\config
Host 192.168.55.2
ForwardAgent yes
ヴァグラントファイル
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.network :private_network, ip: '192.168.55.2'
config.ssh.forward_agent = true
# Why would I need to set this if Keeagent is handling things?
config.ssh.private_key_path = '~/.ssh/id_rsa_jake_mitchell.ppk'
end
ゲストOS (Vagrant)
- Ubuntu x64
- 192.168.55.2、ホスト経由でのみアクセス可能
- SSHキーは存在しません
/home/vagrant/.ssh
(削除しました)。ホストOS(Keeagent)を介したユーザーエージェント転送でキーの使用を処理できるようにするためです。
LAN Web ホスト (イントラネット Web サイト)
- そのドメインは
lan-example.com
- id_rsa.ppk公開鍵のみを使用してSSHパスワードレスログインを許可します
- 192.168.0.2
- sshdでユーザーエージェント転送が有効になっています
問題:
lan-example.com
機能するもの (ホスト OS を使用): Putty、 SSH キーを明示的に参照する必要なく接続します。
機能しないもの (ゲスト OS を使用):使用できるキーがないことが示されるため。ssh -v [email protected]
私はあることに気づいたKeeagent のベータ版SSH_AUTH_SOCK を設定できます。設定し、ゲスト OS がファイルを読み取れる NFS 共有を設定しましたが、何も変わりません。このような環境でエージェント転送はどのように機能するのでしょうか? Windows の何が異なり、これが失敗するのでしょうか?
答え1
エージェント転送を有効にして、ホスト OS から SSH 接続する必要があります (Windows では PuTTY を使用)。次に、そのセッションから、ゲスト OS からサーバーに SSH 接続します。