InfoGrab Docs

`gitlab-sshd`

요약

gitlab-sshd는 Go로 작성된 독립형 SSH 서버입니다. OpenSSH가 제한된 쉘 접근 방식을 사용하는 반면 gitlab-sshd는: 구현에 대한 자세한 내용은 블로그 게시물을 참조하세요. OpenSSH에서 gitlab-sshd로 전환을 고려하고 있다면 다음을 고려하세요:

gitlab-sshd는 Go로 작성된 독립형 SSH 서버입니다. OpenSSH의 경량 대안입니다. gitlab-shell 패키지의 일부이며 SSH 작업을 처리합니다.

OpenSSH가 제한된 쉘 접근 방식을 사용하는 반면 gitlab-sshd는:

  • 현대적인 멀티스레드 서버 애플리케이션으로 기능합니다.
  • SSH 전송 프로토콜 대신 원격 프로시저 호출(RPC)을 사용합니다.
  • OpenSSH보다 메모리를 덜 사용합니다.
  • 프록시 뒤에서 실행되는 애플리케이션에 대해 IP 주소별 그룹 액세스 제한을 지원합니다.

구현에 대한 자세한 내용은 블로그 게시물을 참조하세요.

OpenSSH에서 gitlab-sshd로 전환을 고려하고 있다면 다음을 고려하세요:

  • PROXY 프로토콜: gitlab-sshd는 PROXY 프로토콜을 지원하여 HAProxy와 같은 프록시 서버 뒤에서 실행할 수 있습니다. 이 기능은 기본적으로 활성화되어 있지 않지만 활성화할 수 있습니다.
  • SSH 인증서: gitlab-sshdconfig.yml에 구성된 신뢰할 수 있는 CA 키를 사용하여 인스턴스 수준의 SSH 인증서 인증을 지원합니다. 자세한 내용은 gitlab-sshd를 사용한 인스턴스 수준 SSH 인증서를 참조하세요.
  • 2FA 복구 코드: gitlab-sshd는 2FA 복구 코드 재생성을 지원하지 않습니다. 2fa_recovery_codes를 실행하려고 하면 remote: ERROR: Unknown command: 2fa_recovery_codes 오류가 발생합니다. 자세한 내용은 토론을 참조하세요.

GitLab Shell의 기능은 Git 작업을 넘어 확장되며 GitLab과의 다양한 SSH 기반 상호 작용에 사용될 수 있습니다.

gitlab-sshd 활성화#

gitlab-sshd를 사용하려면:

다음 지침은 OpenSSH와 다른 포트에서 gitlab-sshd를 활성화합니다:

  1. /etc/gitlab/gitlab.rb를 편집합니다:

    gitlab_sshd['enable'] = true
    gitlab_sshd['listen_address'] = '[::]:2222' # Adjust the port accordingly
    
  2. 선택 사항. 기본적으로 Linux 패키지 설치는 /var/opt/gitlab/gitlab-sshd에 없는 경우 gitlab-sshd에 대한 SSH 호스트 키를 생성합니다. 이 자동 생성을 비활성화하려면 다음 줄을 추가합니다:

    gitlab_sshd['generate_host_keys'] = false
    
  3. 파일을 저장하고 GitLab을 재구성합니다:

    sudo gitlab-ctl reconfigure
    

기본적으로 gitlab-sshdgit 사용자로 실행됩니다. 결과적으로 gitlab-sshd는 1024보다 낮은 권한 있는 포트 번호에서 실행할 수 없습니다. 이는 사용자가 gitlab-sshd 포트로 Git에 액세스하거나 SSH 트래픽을 gitlab-sshd 포트로 전달하는 로드 밸런서를 사용하여 이를 숨겨야 함을 의미합니다.

새로 생성된 호스트 키가 OpenSSH 호스트 키와 다르기 때문에 사용자에게 호스트 키 경고가 표시될 수 있습니다. 이것이 문제인 경우 호스트 키 생성을 비활성화하고 기존 OpenSSH 호스트 키를 /var/opt/gitlab/gitlab-sshd에 복사하는 것을 고려하세요.

다음 지침은 gitlab-sshd를 위해 OpenSSH를 전환합니다:

  1. gitlab-shell 차트 sshDaemon 옵션을 gitlab-sshd로 설정합니다. 예를 들어:

    gitlab:
      gitlab-shell:
        sshDaemon: gitlab-sshd
    
  2. Helm 업그레이드를 수행합니다.

기본적으로 gitlab-sshd는 다음을 수신합니다:

  • 포트 22의 외부 요청(global.shell.port).
  • 포트 2222의 내부 요청(gitlab.gitlab-shell.service.internalPort).

Helm 차트에서 다른 포트를 구성할 수 있습니다.

PROXY 프로토콜 지원#

gitlab-sshd 앞에 있는 로드 밸런서로 인해 GitLab이 클라이언트 IP 주소 대신 프록시 IP 주소를 보고합니다. 실제 IP 주소를 얻으려면 gitlab-sshdPROXY 프로토콜을 지원합니다.

PROXY 프로토콜을 활성화하려면:

  1. /etc/gitlab/gitlab.rb를 편집합니다:

    gitlab_sshd['proxy_protocol'] = true
    # Proxy protocol policy ("use", "require", "reject", "ignore"), "use" is the default value
    gitlab_sshd['proxy_policy'] = "use"
    

    gitlab_sshd['proxy_policy'] 옵션에 대한 자세한 내용은 go-proxyproto 라이브러리를 참조하세요.

  2. 파일을 저장하고 GitLab을 재구성합니다:

    sudo gitlab-ctl reconfigure
    
  1. gitlab.gitlab-shell.config 옵션을 설정합니다. 예를 들어:

    gitlab:
      gitlab-shell:
        config:
          proxyProtocol: true
          proxyPolicy: "use"
    
  2. Helm 업그레이드를 수행합니다.

`gitlab-sshd`

Tier: Free, Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기
요약

gitlab-sshd는 Go로 작성된 독립형 SSH 서버입니다. OpenSSH가 제한된 쉘 접근 방식을 사용하는 반면 gitlab-sshd는: 구현에 대한 자세한 내용은 블로그 게시물을 참조하세요. OpenSSH에서 gitlab-sshd로 전환을 고려하고 있다면 다음을 고려하세요:

gitlab-sshd는 Go로 작성된 독립형 SSH 서버입니다. OpenSSH의 경량 대안입니다. gitlab-shell 패키지의 일부이며 SSH 작업을 처리합니다.

OpenSSH가 제한된 쉘 접근 방식을 사용하는 반면 gitlab-sshd는:

  • 현대적인 멀티스레드 서버 애플리케이션으로 기능합니다.
  • SSH 전송 프로토콜 대신 원격 프로시저 호출(RPC)을 사용합니다.
  • OpenSSH보다 메모리를 덜 사용합니다.
  • 프록시 뒤에서 실행되는 애플리케이션에 대해 IP 주소별 그룹 액세스 제한을 지원합니다.

구현에 대한 자세한 내용은 블로그 게시물을 참조하세요.

OpenSSH에서 gitlab-sshd로 전환을 고려하고 있다면 다음을 고려하세요:

  • PROXY 프로토콜: gitlab-sshd는 PROXY 프로토콜을 지원하여 HAProxy와 같은 프록시 서버 뒤에서 실행할 수 있습니다. 이 기능은 기본적으로 활성화되어 있지 않지만 활성화할 수 있습니다.
  • SSH 인증서: gitlab-sshdconfig.yml에 구성된 신뢰할 수 있는 CA 키를 사용하여 인스턴스 수준의 SSH 인증서 인증을 지원합니다. 자세한 내용은 gitlab-sshd를 사용한 인스턴스 수준 SSH 인증서를 참조하세요.
  • 2FA 복구 코드: gitlab-sshd는 2FA 복구 코드 재생성을 지원하지 않습니다. 2fa_recovery_codes를 실행하려고 하면 remote: ERROR: Unknown command: 2fa_recovery_codes 오류가 발생합니다. 자세한 내용은 토론을 참조하세요.

GitLab Shell의 기능은 Git 작업을 넘어 확장되며 GitLab과의 다양한 SSH 기반 상호 작용에 사용될 수 있습니다.

gitlab-sshd 활성화#

gitlab-sshd를 사용하려면:

다음 지침은 OpenSSH와 다른 포트에서 gitlab-sshd를 활성화합니다:

  1. /etc/gitlab/gitlab.rb를 편집합니다:

    gitlab_sshd['enable'] = true
    gitlab_sshd['listen_address'] = '[::]:2222' # Adjust the port accordingly
    
  2. 선택 사항. 기본적으로 Linux 패키지 설치는 /var/opt/gitlab/gitlab-sshd에 없는 경우 gitlab-sshd에 대한 SSH 호스트 키를 생성합니다. 이 자동 생성을 비활성화하려면 다음 줄을 추가합니다:

    gitlab_sshd['generate_host_keys'] = false
    
  3. 파일을 저장하고 GitLab을 재구성합니다:

    sudo gitlab-ctl reconfigure
    

기본적으로 gitlab-sshdgit 사용자로 실행됩니다. 결과적으로 gitlab-sshd는 1024보다 낮은 권한 있는 포트 번호에서 실행할 수 없습니다. 이는 사용자가 gitlab-sshd 포트로 Git에 액세스하거나 SSH 트래픽을 gitlab-sshd 포트로 전달하는 로드 밸런서를 사용하여 이를 숨겨야 함을 의미합니다.

새로 생성된 호스트 키가 OpenSSH 호스트 키와 다르기 때문에 사용자에게 호스트 키 경고가 표시될 수 있습니다. 이것이 문제인 경우 호스트 키 생성을 비활성화하고 기존 OpenSSH 호스트 키를 /var/opt/gitlab/gitlab-sshd에 복사하는 것을 고려하세요.

다음 지침은 gitlab-sshd를 위해 OpenSSH를 전환합니다:

  1. gitlab-shell 차트 sshDaemon 옵션을 gitlab-sshd로 설정합니다. 예를 들어:

    gitlab:
      gitlab-shell:
        sshDaemon: gitlab-sshd
    
  2. Helm 업그레이드를 수행합니다.

기본적으로 gitlab-sshd는 다음을 수신합니다:

  • 포트 22의 외부 요청(global.shell.port).
  • 포트 2222의 내부 요청(gitlab.gitlab-shell.service.internalPort).

Helm 차트에서 다른 포트를 구성할 수 있습니다.

PROXY 프로토콜 지원#

gitlab-sshd 앞에 있는 로드 밸런서로 인해 GitLab이 클라이언트 IP 주소 대신 프록시 IP 주소를 보고합니다. 실제 IP 주소를 얻으려면 gitlab-sshdPROXY 프로토콜을 지원합니다.

PROXY 프로토콜을 활성화하려면:

  1. /etc/gitlab/gitlab.rb를 편집합니다:

    gitlab_sshd['proxy_protocol'] = true
    # Proxy protocol policy ("use", "require", "reject", "ignore"), "use" is the default value
    gitlab_sshd['proxy_policy'] = "use"
    

    gitlab_sshd['proxy_policy'] 옵션에 대한 자세한 내용은 go-proxyproto 라이브러리를 참조하세요.

  2. 파일을 저장하고 GitLab을 재구성합니다:

    sudo gitlab-ctl reconfigure
    
  1. gitlab.gitlab-shell.config 옵션을 설정합니다. 예를 들어:

    gitlab:
      gitlab-shell:
        config:
          proxyProtocol: true
          proxyPolicy: "use"
    
  2. Helm 업그레이드를 수행합니다.