我需要在私有服务器(一种裸机服务器)上部署 CentOs 云映像。因此,我下载 CentOS 云映像并通过运行以下命令virt-customize
启用 SSH 和密码验证来对其进行自定义。build_script.sh
distro=$1
config_dir=$2
if [[ -z $distro ]]; then
echo "USAGE: $0 image_path config_dir"
exit 0
fi
if [[ -z $config_dir ]]; then
echo "USAGE: $0 image_path config_dir"
exit 0
fi
sudo virt-customize --install openssh-server -a $distro
sudo virt-customize --install openssh-clients -a $distro
sudo virt-customize --run-command 'systemctl enable sshd' -a $distro
sudo virt-customize --mkdir /var/ssh/ -a $distro
sudo virt-customize --copy-in $config_dir/sshd_config:/etc/ssh/ -a $distro
sudo virt-customize --run-command 'systemctl start sshd' -a $distro
看起来sshd_config
像
ClientAliveInterval 360
ClientAliveCountMax 0
PermitEmptyPasswords no
PermitRootLogin no
PasswordAuthentication yes
在部署和启动之前,我已手动验证了sshd_config
具有这些值,但是,当启动时,配置更改PasswordAuthenticatin yes
为PasswordAuthentication no
。是什么改变了这一点,我无法调试。提前感谢您的帮助。
答案1
要允许使用 ssh 进行控制台连接(无需密码登录),您需要添加以下命令。您的问题将得到解决。
virt-customize -a /img/$VM_NAME.qcow2 --run-command 'echo PermitRootLogin yes >> /etc/ssh/sshd_config'