我想为可能Vagrant VM启用密码ssh身份验证(并启用基于密钥的身份验证)。怎么设置?
Vagrantfile
:
Vagrant.configure("2") do |config|
config.vm.box = "fedora/26-cloud-base"
config.vm.box_version = "20170705"
config.ssh.username = 'vagrant'
config.ssh.password = 'a'
config.ssh.keys_only = false
end
$ sudo vagrant ssh-config
Host default
HostName 192.168.121.166
User vagrant
Port 22
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /home/jakub/src/kubernetes-vms/kubernetes/.vagrant/machines/default/libvirt/private_key
LogLevel FATAL
此设置不接受密码a
。
我想PasswordAuthentication no
的输出可能是vagrant ssh-config
。如何打开该选项?
答案 0 :(得分:8)
对我来说,以下是有效的。您需要像往常一样ssh到vm,然后编辑/etc/ssh/sshd_config
。在那里,您需要将PasswordAuthentication
设置为yes
而不是no
。这将允许密码验证。
答案 1 :(得分:3)
Vagrantfile
:
Vagrant.configure("2") do |config|
config.vm.box = "fedora/26-cloud-base"
config.vm.box_version = "20170705"
config.vm.provision 'shell', inline: 'echo "vagrant:a" | chpasswd'
end
行config.vm.provision 'shell', inline: 'echo "vagrant:a" | chpasswd'
调用更改vagrant
用户密码的shell配置(前提是该框附带了名为vagrant
的预定义用户)。
然后,不仅可以通过vagrant ssh
连接,还可以连接
ssh vagrant@<vm-ip>
答案 2 :(得分:2)
如果要对VM强制进行密码验证,则需要从Vagrantfile中设置以下内容
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = false
您需要确保VM中的vagrant
用户具有相应的密码。我不确定你使用的盒子,所以你需要自己验证。它适用于以下框:ubuntu/trusty64
答案 3 :(得分:2)
要使用密码ssh,这将自动更新debian / stretch64上的sshd配置:
config.vm.provision "shell", inline: <<-SHELL
sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g' /etc/ssh/sshd_config
service ssh restart
SHELL
答案 4 :(得分:1)
centos 7,仅使用下面的方法是不够的。通过这种方式,我猜想它只是使import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Ideone
{
static void extractWord(String str)
{
String regex = "[a-zA-Z]+";
// compiling regex
Pattern p = Pattern.compile(regex);
// Matcher object
Matcher m = p.matcher(str);
while(m.find())
{
System.out.println(m.group());
}
}
public static void main (String[] args)
{
String str = "123ABC456";
extractWord(str);
}
}
成为密码。我找不到任何无法在official site中使用以下内容的原因。
su vagrant
您应该手动修改sshd_config。
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = false
end
P.S:我的英语不太好