空密码创建 ssh 密钥对在身份验证时拒绝空密码

空密码创建 ssh 密钥对在身份验证时拒绝空密码

在@Sarke 帮助后我找到了解决方案:

这是修复版本,原来的损坏版本对任何人都没有帮助。

关于为什么我需要能够从一个容器通过 SSH 连接到另一个容器,因为我需要对某些客户端提供高可用性,并且想要使用 DRBD 或 rsync 进行磁盘镜像,并希望通过 ssh 隧道进行操作。

xfce4-terminal -T LocalTerm
退出

在 LocalTerm:

lxc stop C1  
lxc stop C2  

lxc delete C1  
lxc delete C2  

lxc launch ubuntu:14.04 C1  
lxc launch ubuntu:14.04 C2  

lxc list --format csv  

xfce4-terminal -T C1Term -e "bash -c 'lxc exec C1 -- /bin/bash; exec bash; exit 0;'"  
xfce4-terminal -T C2Term -e "bash -c 'lxc exec C2 -- /bin/bash; exec bash; exit 0;'"  

在 C1Term 和 C2Term 处:

apt-get update  
apt-get upgrade  
apt-get install netcat net-tools  
apt-get install openssh-server openssh-client  
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original  
    nano /etc/ssh/sshd_config   
        --------  
        Port 2222  
        PubkeyAuthentication yes  
        --------  

在 LocalTerm:

lxc restart C1  
lxc restart C2  

在 C2Term:

lxc exec C2 -- /bin/bash; exec bash  

在 C1Term:

lxc exec C1 -- /bin/bash; exec bash  
ssh-keygen -t rsa  
    --------  
    Here using no password and all default options  
    --------  

在 LocalTerm:

rm -rf /home/myUser/localFolder/*  

lxc file pull --recursive C1/root/.ssh/id_rsa.pub /home/myUser/localFolder/  
cat /home/myUser/localFolder/id_rsa.pub >> /home/myUser/localFolder/authorized_keys_tail  
lxc file push --recursive /home/myUser/localFolder/authorized_keys_tail C2/root/.ssh/  
lxc exec C2 -- sh -c "sudo cat /root/.ssh/authorized_keys_tail >> /root/.ssh/authorized_keys"  

在 C1Term:

sudo ssh -i ~/.ssh/id_rsa.pem [email protected] -p2222  

答案1

ssh-copy-id用于将用户的公钥附加到远程文件中authorized_keys。这是用于验证连接的文件。复制公钥文件不会产生任何效果。

对我来说,这似乎不像是 LXC/LXD 问题,而是 SSH 使用问题。

为了使用,ssh-copy-id我们需要以某种方式进行验证,而且很可能我们的公钥尚未存在,因此需要密码。如果没有设置密码或密码可用,则需要手动完成。

尝试

lxc file pull --recursive C1/root/.ssh/id_rsa.pub /home/myUser/localFolder/
cat id_rsa.pub >> authorized_keys
lxc file push --recursive /home/myUser/localFolder/authorized_keys C2/root/.ssh/

但是为什么需要能够从一个容器通过 SSH 连接到另一个容器呢?

相关内容