
전용 서버 장치는 ssh
하나의 로그인 계정에서만 로그인을 허용합니다.
- 공개키만을 이용한 인증,
- 그리고 구성된 명령을 실행합니다
ForceCommand
.
로그인 계정은 여러 ID에서 사용할 수 있으며 각 ID에는 에 등록된 공개 키가 있습니다 authorized_keys
.
이러한 공개 키 중 일부에 대한 명령에 제어 토큰을 전달하고 싶습니다.
환경 변수를 사용하여 이를 달성할 수 있으며 이를 environment=
위해서는 authorized_keys
.PermitUserEnvironment
글로벌 옵션( sshd_config
블록에서는 지원되지 않음 Match
).
을 활성화하면 PermitUserEnvironment
클라이언트가 환경 변수를 전달할 수도 있습니다. 그러나 다음과 같은 이유로 이것이 안전하다고 생각합니다.
AcceptEnv
클라이언트는 서버의 설정에서 허용되는 변수만 전달할 수 있습니다.- 설정된 변수는
authorized_keys
클라이언트에서 전달된 변수보다 우선합니다. - 유일한 유효한 로그인은 강제 명령을 실행하므로 환경을 조정할 수 있는 대화형 셸에 액세스할 수 없습니다.
그러므로 나는 믿는다
- 사용 방법을 모른다면
AcceptEnv
클라이언트가 환경 변수를 전달하는 것이 불가능해야 합니다. - 모든 공개 키에 변수 값을 설정하면 (잘못) 허용된 경우에도 클라이언트가 이를 재정의할 수 있는 방법이 없습니다
AcceptEnv
. - 셸 액세스가 없으므로 환경을 수정할 수 있는 다른 방법은 없습니다.
이 제품을 사용해도 안전한가요 PermitUserEnvironment
? 아니면 위에서 고려하지 않은 다른 위험이 있나요?