我有一個sinple Vagrant
文件,創建3個實例:流浪規定外殼:無法運行ssh-copy-id命令
config.vm.define "node1" do |subconfig|
subconfig.vm.box = "ubuntu/trusty64"
subconfig.vm.network "private_network", ip: "192.168.33.10"
end
config.vm.define "node2" do |subconfig|
subconfig.vm.box = "ubuntu/trusty64"
subconfig.vm.network "private_network", ip: "192.168.33.11"
end
config.vm.define "master" do |subconfig|
subconfig.vm.box = "ubuntu/trusty64"
subconfig.vm.network "private_network", ip: "192.168.33.9"
subconfig.vm.provision :shell, path: "install.sh"
end
在主節點,我要生成SSH密鑰,然後將其複製到2個其他節點。我準備殼(install.sh):運行2最後一行時
apt-get install sshpass -y
ssh-keygen -t rsa -b 4096 -C "[email protected]" -N "" -f /home/vagrant/.ssh/id_rsa
sudo chmod -R 755 /home/vagrant/.ssh
sshpass -p vagrant ssh-copy-id -o StrictHostKeyChecking=no [email protected]
sshpass -p vagrant ssh-copy-id -o StrictHostKeyChecking=no [email protected]
但我得到這個錯誤:
> master: /usr/bin/ssh-copy-id: ERROR: No identities found
但是,如果我ssh到主節點,然後再次運行install.sh,一切很好。我認爲這可能是關於在流浪者上運行時的用戶許可。我該如何解決它?
我的猜測是'install.sh'以特權用戶的身份運行(默認)並且正在尋找'/ root/.ssh/id_rsa'。用'-i/home/vagrant/.ssh。/ id_rsa.pub'指定標識文件。 – fernandezcuesta
這是錯誤的'sudo chmod -R 755/home/vagrant/.ssh'。你太多地打開了'id_rsa'的權限。而SSH不會工作。此外,如果用戶是root,那麼默認情況下,ssh-copy-id將在根目錄的主文件夾 –