我已经多次尝试这些步骤,但都失败了。做了很多 RnD 但无法解决问题。
我正在使用在 Oracle VM 上运行的 CentOS。
我正在尝试使用 SSH 从 CentOS 主机 -> Jenkins -> 远程主机连接
我目前的工作目录是:/root/connect2nareshc/jenkins_0_to_hero/jenkins_image
我确实ssh-keygen -f remote-key
生成了公钥和私钥。
在/root/connect2nareshc/jenkins_0_to_hero/jenkins_image
我的目录Dockerfile
中如下:
FROM centos:7
RUN yum -y install openssh-server
RUN useradd remote_user && \
echo "1234" | passwd remote_user --stdin && \
mkdir /home/remote_user/.ssh && \
chmod 700 /home/remote_user/.ssh
COPY remote-key.pub /home/remote_user/.ssh/authorized_keys
RUN chown remote_user:remote_user -R /home/remote_user/.ssh && \
chown 600 /home/remote_user/.ssh/authorized_keys
RUN ssh-keygen -A
CMD /usr/sbin/sshd -D
在上面的一个目录中/root/connect2nareshc/jenkins_0_to_hero
,我有docker-compose.yml
以下内容:
version: '3'
services:
jenkins:
container_name: jenkins_yml
image: "jenkins/jenkins:lts"
ports:
- 8080:8080
networks:
- net
remote_host:
container_name: remote-host
image: remote_host
build:
context: /root/connect2nareshc/jenkins_0_to_hero/jenkins_image
networks:
- net
networks:
net:
我执行以下命令,它工作正常。即从主机我连接到 Jenkins,从 Jenkins 我使用密码连接到 remote_host。
docker-compose build
docker-compose up -d
docker exec -it jenkins_yml bash
ssh remote_user@remote_host
#Enter password 1234 when prompted.
当我尝试使用密钥进行连接时,我无法:
docker cp remote-key jenkins_yml:/tmp/remote-key
docker exec -it jenkins_yml bash
cd /tmp
ssh -i remote-key remote_user@remote_host
相反,它提示我使用密码连接。
在 remote_host 上,我做ls -altr
了/var/log
并得到了以下输出。我找不到 auth.log
drwxr-xr-x. 1 root root 4096 May 4 15:36 ..
-rw-r--r--. 1 root root 193 May 4 15:36 grubby_prune_debug
-rw-------. 1 root utmp 0 May 4 15:36 btmp
drwxr-xr-x. 1 root root 4096 May 4 15:37 .
-rw-------. 1 root root 1751 Jul 28 16:35 yum.log
-rw-------. 1 root root 64064 Jul 28 16:36 tallylog
-rw-rw-r--. 1 root utmp 1152 Jul 29 03:17 wtmp
-rw-r--r--. 1 root root 292292 Jul 29 03:17 lastlog