Gitlab配置完免密SSH Key後依然需要輸入密碼的解決辦法

Gitlab配置完ssh key後,用ssh方式連接,還是要輸入密碼:

[root@localhost ~]# git clone [email protected]:devops/test.git
Cloning into 'test'...
[email protected]'s password:

網上的文章找了一大堆,比如git用戶被lock,設置密碼什麼的,依然沒解決問題,用SSH調試,發現不用22端口是可以的。最後突然靈光一閃,會不會是LINUX的安全策略引起的呢,禁用掉安全策略,重啓後,果然問題解決。

解決步驟

如下:
把/etc/selinux/config裏的SELINUX=disabled


# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled 
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

擴展知識:

1. SSH調試命令,試試不用22端口是否可以

  • GITLAB所在服務器,防火牆開啓8003端口,並啓動調試
firewall-cmd --zone=public --add-port=8003/tcp --permanent
firewall-cmd --reload
/usr/sbin/sshd -d -p 8003
  • 客戶服務器,嘗試連接
 ssh -vT [email protected] -p 8003

測試過程中發現8003可以免密沒問題,換成22端口後就需要密碼。

2.SELINUX其它相關

SELinux檢查方式是獨立於傳統的使用者的權限,用戶必須同時符合使用者的權限和SELinux的權限才能順利執行操作。SELinux需要一個好的Policy才能發揮最好的效果,策略太寬鬆會使SELinux毫無用處,太嚴格又會使系統管理處處麻煩,有些時候系統服務配置不成功,以爲是配置文件寫錯了,卻不知道是SELinux限制的問題,其實配置文件並沒有寫錯。原來root可以任意重新啓動某些服務,但是啓用SELinux後,由於SELinux的控制而無法順利進行。美國國家安全局將安全策略的制定交由Linux的發行商來做,Redhat自己訂製了一套基本的策略。targeted策略是RHEL已經定義好的策略,它保護的系統服務一共是25個,包括ypbind,dhcpd,httpd,mysqld,named,nscd,ntpd,pegasus,portmap,postgresql,snmpd,squid,syslogd,winbind,use_nfs_home_dirs等。

參考文章:https://blog.csdn.net/skyhh/article/details/88992408

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章