vagrant ssh 이후에 다른 사용자를 로드하기 위해 비밀번호 없는 ssh를 vagrant로

vagrant ssh 이후에 다른 사용자를 로드하기 위해 비밀번호 없는 ssh를 vagrant로

내 vagrant box(trusty64)에 새로운 사용자가 있고 그 사용자로 ssh를 시도하고 있습니다. vagrant이후에 사용자 로 로그인하는 대신 vagrant up내 사용자 이름으로 로그인하고 싶습니다.

내가 지금까지 한 일

  1. 내 게스트 컴퓨터에 사용자를 만들었습니다.
  2. 다음을 사용하여 내 호스트에 SSH 키를 만들었습니다.ssh-keygen
  3. 다음을 사용하여 SSH 키를 게스트에 복사했습니다.ssh-copy-id -p 2222 -i [email protected]

Vagrantfile의 일부는 다음과 같습니다

  config.vm.box = "ubuntu/trusty64"
  config.ssh.username = "shash"
  config.ssh.forward_agent = true
  config.ssh.private_key_path = "~/.ssh/authorized_keys"

직접 로그인하는 데 사용할 수 있지만 제공하면 다음 오류가 계속 발생합니다.ssh -p '2222' '[email protected]'vagrant up

default: Warning: Connection timeout. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...

이 문제를 해결하는 데 도움을 주시면 정말 감사하겠습니다. 감사합니다!

답변1

config.ssh.private_key_path개인 키 파일을 가리켜야 합니다(일반적으로 ~/.ssh/id_rsa를 실행할 때 파일 이름이 표시됨 ssh-keygen).~ 아니다 ~/.ssh/authorized_keys.

답변2

이를 수행하는 다른 방법은 다음을 맨 아래에 추가하는 것입니다 ~vagrant/.bashrc.

ssh chsc
exit

SSH 키를 생성하고 설치하는 문제를 피하려면 su대신 사용할 수 있습니다. 그러나 ssh상자 내에서 외부 서버에 연결해야 하는 경우 Vagrant 상자 내부에서 SSH 전달 에이전트를 사용할 수 없습니다 .

sudo su chsc
exit

이러한 변경을 수행할 때 ~vagrant/.bashrc오류가 발생하면 셸에서 빠져 나올 위험이 있습니다. vagrant모든 것이 제대로 작동하는지 확인할 때까지 열린 터미널을 로 로그인된 상태로 유지하는 것이 좋습니다 . 문제가 발생하면 .bashrc( mv .bashrc .bashrc-bak)의 이름을 바꾸세요.

관련 정보