Vagrant SSH가 명령 프롬프트를 표시하지 않습니다

Vagrant SSH가 명령 프롬프트를 표시하지 않습니다

Windows 8.1을 실행하는 컴퓨터가 있고 일부 프로젝트에서는 Vagrant 및 VirtualBox를 사용하지만 VirtualBox 및 Vagrant를 업그레이드한 후 Vagrant ssh를 실행한 후 vagrant에 명령 프롬프트가 표시되지 않습니다. 기존 박스에 관련된 문제일지도 모른다고 생각해서 새로운 가상머신을 생성해 보았으나 결과는 마찬가지였습니다.

아래와 같이 일부 명령은 결과를 반환하고 모든 것이 잘 작동합니다.

sudo -i는 stdin: tty가 아님을 반환합니다.

이 문제를 보고 해결 방법을 알려주실 수 있나요?

답변1

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에서 작업 중이므로 이 문제의 원인이 무엇인지 잘 모르겠습니다.

Vagrant 1.9.7로 업데이트하면 Windows cmd-prompt를 사용하는 대신 이 문제도 해결되었습니다. 적어도 저에게는 그렇습니다 :)

답변2

저는 Windows 10 개발 환경(cygwin/babun + mintty)을 실행하고 있으며 Vagrant를 업그레이드한 후에도 동일한 문제가 발생했습니다. vagrant ssh를 사용하여 문제에 대한 해결책을 찾지 못했지만 해결 방법을 찾았습니다.

결과적으로 가상 환경에 정상적으로 SSH 접속이 가능했습니다. Vagrantfile에서 할당된 IP 주소(예: 172.0.0.101)를 확인하세요. 다음 명령을 사용하는 경우:

ssh [email protected]

비밀번호 "vagrant"(Vagrant Box의 표준 비밀번호)를 입력하고 정상적으로 기기를 사용할 수 있어야 합니다. 내가 이해한 바로는 이는 TTY 인터페이스를 터미널 창에 전달하는 것과 관련이 있습니다. "vagrant ssh"의 초기 버전은 호스트 경로에 ssh를 사용했지만 최신 버전에는 Windows 환경에서 잘 작동하지 않는 ssh 버전이 내장된 것 같습니다(어제 제한된 경험과 연구에서 나온 것입니다).

사용자 이름/비밀번호 조합을 사용하지 않고 액세스하려는 경우 빠른 해결 방법도 있습니다. .babunrc 파일에 다음 함수를 만들었지만 어떤 .bashrc 또는 .bash_profile도 작동할 것 같습니다.

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

이를 통해 Vagrant 상자를 스크롤할 때마다 구성을 재구성할 수 있습니다. 이렇게 하면 현재 설정한 모든 구성을 덮어쓰게 됩니다. ">>"를 사용하여 추가로 전환할 수 있지만 개발 환경을 자주 스크롤하면 거대한 구성 파일이 생성됩니다. 분명히 이것은 모든 사람에게 적합한 솔루션은 아닙니다.

어쨌든 최신 버전에서는 TTY를 통과할 수 없는 이 SSH 패키지를 번들로 묶는 것이 매우 궁금합니다. 나는 이유를 이해할 만큼 강력한 사용자는 아니지만 적어도 문제를 식별할 수 있습니다.

답변3

이것을 시도해 보십시오: (일반 인간의 비기술적 영어로)

  • Windows 문제를 해결하는 데 cmd만 사용하기 때문에 Windows 사용자는 기본적으로 항상 관리 권한으로 명령 프롬프트를 엽니다.
  • Vagrant는 아이콘을 클릭하여 cmd를 열고 표시된 홈 디렉터리( C:\Users\yourName )로 직접 이동하는 것을 선호하는 것 같습니다.

그래서:

  • 이런 식으로 cmd를 사용하면 모든 vagrant 명령이 작동합니다.
  • 관리자로 로그인한 후 홈 디렉토리로 이동하려고 하면 제한 구역에 있다는 것을 알게 될 것입니다. 저는 때때로 Vagrant 명령을 차단할 수 있다는 것을 발견했습니다.

행운을 빌어요!

관련 정보