我正在尝试配置一个docker容器,该容器用作具有现有authorized_keys的ssh隧道/代理。
密钥有一个密码短语,当尝试连接时会要求它。在具有相同authorized_keys文件的任何其他主机上,都不会要求我输入密码短语。
尽管在/ etc / ssh / ssh_config中将严格的主机检查设置为“否”,但我还会收到消息“无法建立主机的真实性……”。
Dockerfile:
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y nano \
iputils-ping \
ssh \
sudo \
openssh-server \
telnet \
net-tools \
iptables \
iproute2
RUN mkdir /var/run/sshd
# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
RUN \
groupadd -g 999 awx && useradd -u 999 -g awx -G sudo -m -s /bin/bash awx-user && \
sed -i /etc/sudoers -re 's/^%sudo.*/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g' && \
sed -i /etc/sudoers -re 's/^root.*/root ALL=(ALL:ALL) NOPASSWD: ALL/g' && \
sed -i /etc/sudoers -re 's/^#includedir.*/## **Removed the include directive** ##"/g' && \
echo "awx-user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \
echo "Customized the sudoers file for passwordless access to the awx-user user!" && \
echo "awx-user user:"; su - awx-user -c id
RUN mkdir -p /home/awx-user/.ssh
COPY awx_id_rsa.pub /home/awx-user/.ssh/authorized_keys
COPY ssh_config /etc/ssh/ssh_config
RUN sed -ri s/#PermitRootLogin.*/PermitRootLogin\ yes/ /etc/ssh/sshd_config && \
sed -ri 's/#PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
RUN apt-get clean
USER awx-user
RUN sudo chown awx-user:awx /home/awx-user/.ssh && \
sudo chown awx-user:awx /home/awx-user/.ssh/authorized_keys && \
sudo chmod 700 /home/awx-user/.ssh && \
sudo chmod 600 /home/awx-user/.ssh/authorized_keys
RUN mkdir /home/awx-user/motionpro && \
mkdir /home/awx-user/motionpro/app
COPY MotionPro_Linux_Ubuntu_x64_v1.2.5.sh /home/awx-user/motionpro/MotionPro_Linux_Ubuntu_x64_v1.2.5.sh
RUN sudo chmod +x /home/awx-user/motionpro/MotionPro_Linux_Ubuntu_x64_v1.2.5.sh && \
printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local && \
sudo chmod +x /etc/rc.local
WORKDIR /home/awx-user
EXPOSE 22
Docker运行:
docker run --restart always --user awx-user --hostname motionpro --name motionpro --privileged -p 2201:22 --device /dev/net/tun --cap-add NET_ADMIN --sysctl net.ipv6.conf.all.disable_ipv6=0 -t -d motionpro /bin/bash -c "sudo ./motionpro/MotionPro_Linux_Ubuntu_x64_v1.2.5.sh --target /home/awx-user/motionpro/app > /dev/null && sudo /usr/sbin/sshd -Ddd && bash"
如何配置图像/容器以像在普通主机上一样接受公钥?
答案 0 :(得分:-1)
几天后,另一个人靠我自己解决了...
工作正常。在同一主机上使用Ansible Tower(AWX)和容器vpn代理时,不是这样。
新问题。关闭。