Vagrant ボックス (trusty64) に新しいユーザーがいて、SSH で接続しようとしています。vagrant
その後、ユーザーにログインするのではなくvagrant up
、ユーザー名にログインしたいです。
これまでやってきたこと
- ゲストマシンにユーザーを作成しました。
- ホストにSSHキーを作成しました
ssh-keygen
- 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
。ただし、ボックス内から外部サーバーに接続する必要がある場合、Vagrant ボックス内で SSH フォワード エージェントを使用することはできませんssh
。
sudo su chsc
exit
このような変更を行う際は、~vagrant/.bashrc
エラーが発生するとシェルからロックアウトされるリスクがあります。すべてが機能することを確認するまで、 としてログインした状態でターミナルを開いたままにしておくことをお勧めしますvagrant
。問題が発生した場合は、.bashrc ( ) の名前を変更してくださいmv .bashrc .bashrc-bak
。