1. ホーム
  2. shell

[解決済み] 実際に "vagrant ssh" を実行せずに、vagrant に ssh するにはどうしたらいいですか?

2022-04-23 17:58:19

質問

Vagrant が私の VM にログインする方法を、シェルスクリプトで再現したいのですが、それには ssh コマンドで、Vagrant インスタンスへのエイリアスを作成します。

を使用するコマンド構文を教えてください。 ssh コマンドでアクセスできますか?

解決方法は?

というのも、quot;vagrant ssh"を再実装しなければならないからです。 -c オプションが正しく引数を渡してくれませんでした。これは 基本的に のようなものです (他にもあるかもしれませんが、この方法でうまく動作します)。

#!/bin/sh
PORT=$(vagrant ssh-config | grep Port | grep -o '[0-9]\+')
ssh -q \
    -o UserKnownHostsFile=/dev/null \
    -o StrictHostKeyChecking=no \
    -i ~/.vagrant.d/insecure_private_key \
    vagrant@localhost \
    -p $PORT \
    "$@"

一発芸として(kgadekに感謝しながら)。

ssh $(vagrant ssh-config | awk 'NR>1 {print " -o "$1"="$2}') localhost

複数の vagrant ホストがある場合のために、これは希望のホストを選択するだけでなく、設定から空行をカットします (sed を使用します)。

HOST=name-of-my-host
ssh $(vagrant ssh-config $HOST | sed '/^[[:space:]]*$/d' |  awk 'NR>1 {print " -o "$1"="$2}') localhost