개인 데비안 저장소에 대한 액세스를 제한하고 비 대화식으로 인증 할 수있는 방법을 찾고있었습니다 (예 : 스크립트 사용)
실제로 데비안 관리 사이트 에서 찾은 것이지만 가장 안전한 방법은 ssh 및 공개 / 개인 키를 사용 하는 가장 유용한 기사 입니다. 잘 작동하지만 성공적으로 인증하려면 각 호스트의 공개 키가 remote certified_keys 파일 내에 있어야합니다. ssh : //에 암호를 제공하는 것에 대해 아무 말도하지 않지만 가능해야한다고 생각합니다.
다른 대안 (예 : ftp)을 사용해 보셨습니까?
미리 감사드립니다
답변
항상 apt-get
수동으로 서버에서 실행 하는 경우 ( apt-get
크론에서 자동 명령을 실행 하지 않음 ) ssh 에이전트 전달 사용을 고려할 수 있습니다 . 이렇게하면 관리하는 서버 당 하나의 공개 / 개인 키 쌍을 관리 할 필요가 없으며 모든 서버에 개인 키를 두는 것보다 안전합니다.
초기 구성
-관리하려는 서버에 연결하고 다음과 같이 추가하십시오 /etc/apt/sources.list
(이 예에서는 서버가 manager
계정 에 연결되기를 원한다고 가정 ).
deb ssh://manager@my.repository.org/path other stuff
-
johndoe
예를 들어 로그인 을 사용하여 자신의 컴퓨터에 개인 / 공개 키 쌍을 만듭니다 (컴퓨터가 데비안에서 실행되는 경우 : 그렇지 않은 경우 관리 전용 데비안 서버에서이 작업을 수행 할 수 있음).ssh-keygen
- 강력한 키 프레이즈로 보호되는지 확인하십시오
-
다음 위치에서 공개 키를 저장소 서버에 복사하십시오
/home/manager/.ssh/authorized_keys
.ssh-copy-id manager@my.repository.org
관리 세션 당 한 번
-
다음을 입력하여 머신에서 ssh 에이전트를 시작하십시오.
eval `ssh-agent`
-
에이전트에 키를 추가하십시오 (암호가 필요함).
ssh-add
서버 관리
-
를 사용하여 관리하려는 서버에 연결합니다
ssh -A
(-A
에이전트 전달 활성화).ssh -A some.server.org
-
루트로 전환하십시오 (사용
sudo
하려면 에이전트 전달 을 구성해야합니다./etc/sudoers
그렇지 않으면sudo
에이전트 전달을 중단 하십시오 ).su
-
이제 에이전트 전달 덕분에 비밀번호를 다시 입력하지 않고 ssh를 사용하여 저장소의 관리자 계정에 연결할 수 있습니다. 따라서
apt-get
제대로 작동해야합니다.apt-get udate
관리 세션 종료
-
서버 관리가 끝나면 에이전트에서 키를 제거하십시오.
ssh-add -D
장점
- 초기 구성이 많이 필요하지 않습니다
- 하나의 개인 키만 필요
- 개인 키는 강력한 암호로 보호됩니다
- 누군가 서버 중 하나에 대한 루트 액세스 권한을 얻는 경우 리포지토리 서버에 즉시 액세스 할 수 없습니다.
- 해커가 참을성 있고 자격이 있다면 에이전트 전달을 사용하여 서버에 연결할 때까지 기다릴 수 있으며, 저장소 서버에 액세스하기 위해 전달 메커니즘을 가로 챌 수 있습니다.
- 이를 방지
ssh-ask
하기 위해 키를 사용하려는 모든 시도를 수락 / 거부하기 위해 사용할 수 있습니다. - 어떤 경우, 해커는 것 없는 그는 단지하기 위해 전달 메커니즘을 납치 할 수있을 것입니다 : 개인 키 자체에 액세스 사용 키를, 만 시간 동안 해당 서버에 연결되어 있습니다.
답변
이를 수행하는 한 가지 방법은 특정 IP 세트가 저장소에 액세스하도록 허용하는 것입니다. 이것은 LAN 및 VPN에 매우 효과적입니다.
간단하고 효율적입니다.
답변
ssh + 공개 / 개인 키 솔루션은 그렇게 나쁘지 않습니다.
- 클라이언트 시스템에서 루트로 로그인
- 을 입력
ssh-keygen
한 다음ssh-copy-id your_login@your.repository.org
-
다음
/etc/apt/sources.list
과 같은 것을 편집 하고 추가하십시오 :deb ssh://your_login@your.repository.org/path other stuff
물론, 각 서버의 공개 키를 서버의 ~/.ssh/authorized_keys
파일에 넣어야 하지만 그렇게 복잡하지는 않으며 (위 참조) 특정 시간에 허용하거나 허용하지 않는 서버를 제어 할 수 있습니다 (키를 제거 할 수 있음) 어떤 시간 authorized_keys
).
답변
로그인 / 암호 (기본 인증)로 보안 된 저장소에 https 액세스를 설정할 수 있습니다. 문제는 일반 텍스트 로그인 / 암호를 입력해야한다는 것입니다 /etc/apt/sources.list
(참고 : 대신 로그인 / 암호를 입력 할 수 있는 패치 가 있습니다 /root/.netrc
).
답변
질문의 링크는 여러 가지 방법을 보여줍니다. 2 번, https + 기본 인증을 원합니다.