web-dev-qa-db-ja.com

Vagrant sshがコマンドプロンプトを表示しない

私はWindows 8.1を実行するコンピューターを持っていて、一部のプロジェクトではVagrnatとVirtualBoxを使用していますが、VirtualBoxとVagrantをアップグレードした後、Vagrant sshを実行した後、vagrantはコマンドプロンプトを表示しません。古い箱に関連する問題かもしれないと思ったので、新しいVMを作成しましたが、結果は同じです。

As you can be seen below, some commands return results and everything is fine

Sudo -i returns me that stdin: is not a tty

どうぞ、この問題をどのように解決できるかについて考えてください。

6
John

Creators Update、Vagrant 1.9.6、VirtualBox 5.1.22r115126、Cygwinを搭載したWindows 10 Home 64ビットで同じ問題が発生します。以下 https://github.com/mitchellh/vagrant/issues これはcygwin/babun/gitbashで発生する可能性があるが、cmd-Promptでは発生しないと読みました。

Windowsのcmd-Promptで別のボックスを起動したので、vagrant upとvagrant sshを実行すると、ボックス内にプロンプ​​トが表示されることを確認できます。理想的ではありませんが、当面は機能します。

長い間cygwinを更新しておらず、Vagrant 1.9.6で動作していたため、これが何が原因かはわかりません。

Windows cmd-Promptを使用する代わりに、Vagrant 1.9.7にアップデートすると、少なくとも私にとってはこの問題も修正されます:)

5
slibbe

私はWindows 10開発環境(cygwin/babun + mintty)を実行していて、Vagrantをアップグレードした後に同じ問題が発生しました。 vagrant sshを使用した問題の解決策は見つかりませんでしたが、回避策を見つけました。

結局のところ、私は仮想環境に正常にSSHで接続できます。 Vagrantfileで割り当てられたIPアドレス、たとえば172.0.0.101を確認します。コマンドを使用する場合:

ssh [email protected]

パスワード「vagrant」(vagrantボックスの標準)を入力して、マシンを通常どおりに使用できるはずです。これは、TTYインターフェイスをターミナルウィンドウに渡すことと関係があると私は理解しています。以前のバージョンの「vagrant ssh」では、ホストのパスにあるsshを使用していましたが、新しいバージョンには、sshのバージョンが組み込まれていて、Windows環境ではうまく機能しないようです(これは、昨日の限られた経験と調査によるものです)。

ユーザー名とパスワードの組み合わせを使用せずにアクセスしたい場合も、簡単な回避策があります。次の関数を.babunrcファイルに作成しましたが、.bashrcまたは.bash_profileが機能すると思います。

# Vagrant ssh-config to file
function devConfig () {
    vagrant ssh-config > "PATH TO YOUR SSH CONFIG FILE"
}

これにより、Vagrantボックスをロールオーバーするたびに構成を再構成できます。これにより、現在設定している構成が上書きされることに注意してください。 ">>"を使用して追加に切り替えることができますが、開発環境を頻繁にローリングする場合は、巨大な構成ファイルが作成されます。明らかに、それは誰にとっても有効な解決策ではありません。

いずれにせよ、新しいバージョンにTTYを渡すことができないこのsshパッケージがバンドルされていることは非常に奇妙です。私はその理由を理解するのに十分なほど強いユーザーではありませんが、少なくとも問題を特定することはできます。

4
andrews88l