Gitlab에서 clone(ssh) 비밀번호를 물어봐서 찾아봤어요.

아직 SELinux는 잘 모르지만 해결됐으니까 필기하세요.

문제.


중앙 OS 7에 설치된 개인 GitLab의 경우
SSH 연결git clone을 시도할 때 키를 설정할 때 비밀번호를 묻습니다.

까닭


SELinux 설정이 적절하게 설정되지 않았기 때문입니다.
(사실 나는 무효만 하면 된다고 생각했는데, 내가 이겼기 때문에 싸우려고 했다)

해결책


chcon -R -t ssh_home_t /var/opt/gitlab/.ssh

해결될 때까지.


특정 값이 컨텐트로 대체됩니다.
SELinux에 도착하기 전에 생략하십시오.
(다방면의 조사를 통해.ssh/authrized keys가 역할을 발휘하지 않았다는 것을 알았다.)
다음 명령을 통해 SELinux를 무효화시키면 git에 ssh 연결을 할 수 있습니다.
無効化
# setenforce 0
接続確認(クライアント側)
# ssh -T git@<IP>
有効化
# setenforce 1
ls-Z에 있는 SELinux 라벨(권한?)그러면
루트와
git
다르다는 것을 알았다.
루트의ssh/authorized_sshhome_t
git의ssh/authorized_keys는 var입니다.t
됐어.
SELinux 로그를 확인한 후
# ls -Z ~/.ssh 
unconfined_u:object_r:ssh_home_t:s0 authorized_keys
# ls -Z  /var/opt/gitlab/.ssh
unconfined_u:object_r:var_t:s0 authorized_keys      system_u:object_r:var_t:s0 authorized_keys.lock

ここまで来る前に
# restorecon -R -v /var/opt/gitlab/.ssh
を実行しているのでls -Z  /var/opt/gitlab/.sshの結果は本来の状態から異なっているかもしれない、、、
역시 authorized키스에 문제가 있는 것 같은데,
그러므로
git의ssh/authorized_ssh keys 태그home_t
이...로 변경되면 갈 수 있지 않나요?이렇게 설정했어.
# cat /var/log/audit/audit.log | grep denied
...
type=AVC msg=audit(<time?>): avc:  denied  { read } for  pid=<pid> comm="sshd" name="authorized_keys" dev="dm-0" ino=<ino> scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:var_t:s0 tclass=file permissive=0
...
설치 후 연결할 수 있습니다.
# chcon -R -t ssh_home_t /var/opt/gitlab/.ssh
# ls -Z  /var/opt/gitlab/.ssh
unconfined_u:object_r:ssh_home_t:s0 authorized_keys      system_u:object_r:ssh_home_t:s0 authorized_keys.lock
지금 다시 시작해도 SSH 연결에 문제가 없습니다.

참고 자료


[ausearch] SELinux의 로그에 대한 견해와 고장 제거, 감사 설정,tail 실시간 표시~
[대충 이해] 셀리눅스는?

좋은 웹페이지 즐겨찾기