[컴] docker centos 8 에서 /run/nologin

centos nologin /

docker centos 8 에서 /run/nologin

centos 8(centos:centos8) 으로 만든 docker container 에서 ssh-copy-id 를 하려고 login을 시도하니 아래처럼 error 가 나왔다.

docker container 에는 rsync 라는 user 가 추가되어 있다.

[rsync@fd66a850ce00 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub node1
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/rsync/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
rsync@node1's password:
"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8)."
Connection closed by 172.19.0.2 port 22

root 을 제외한 ssh login 자체가 안됐다.

sh-4.4# ssh rsync@node1
rsync@node1's password:
"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8)."
Connection closed by 172.19.0.2 port 22

/run/nologin 삭제

pam_nologin(8) - Linux man page 에는 /etc/nologin 이라고 되어 있는데, docker container 에서는 /etc/nologin 은 없고, /run/nologin 에 존재했다.

이 파일을 삭제하면 잘 동작한다.

sh-4.4# ls /run/nologin -al
-rw-r--r-- 1 root root 142 Sep 15 14:17 /run/nologin
sh-4.4# rm /run/nologin

Dockerfile에 넣으면 된다.

RUN rm -rf /run/nologin

/run/nologin

2016년 글에는 /run/nolgin 은 systemd 와 관련있고, 원래는 /tmpfs 에 생성되는 것이라 한다. 이것이 container 에는 필요없을 것이라고, 이것을 삭제했다고 나와있다.

그런데 2018년에는 다시 생긴 듯 하다.

여하튼 2016년 기준으로는 지워도 무방하다고 이야기 한다.

References

댓글 없음:

댓글 쓰기