SSH 키 쌍을 노출하지 않고 활성화하는 방법

SSH 키 쌍을 노출하지 않고 활성화하는 방법

게이트웨이 서버( ) 에서 SSH 키 쌍을 사용하여 액세스 [email protected]할 수 있는 SSH 계정이 있습니다 . 이 계정에 액세스해야 하는 시스템 관리자가 많이 있습니다. 그들 각각은 자신의 SSH 계정을 가지고 있습니다 .ts_key.pub/ts_key.privgateway.orggateway.org[email protected]

ts_key.pub/ts_key.priv계속 사용 gateway.org하고 시스템 관리자가 사용하도록 허용할 수 있는 방법이 있습니까 ?노출하지 마세요시스템 관리자에게? 따라서 그 중 한 명이 회사를 떠나고 그의 계정이 gateway.org폐쇄 되면 ts_key.pub/ts_key.priv더 이상 해당 계정을 사용할 수 없게 됩니다.

업데이트: 누군가 나(IRC/#OpenSSH의 좋은 사람들)에게 암호로 개인 키를 암호화한 다음 ssh-agent/ssh-add를 사용하라고 제안했습니다. 하지만 구체적인 내용은 잘 모르겠습니다...

답변1

대안으로authorized_keys 파일에 키 접두사를 추가할 수 있습니다.[이메일 보호됨]"from=ip.address.of.gateway.org"를 사용하면 연결이 게이트웨이 시스템에서 들어오는 경우에만 키가 효과적으로 작동합니다.

자세한 내용은 "man sshd"를 참조하세요.

gateway.org또 다른 가능성은 로그인이 비활성화된 별도의 계정에 개인 키를 넣는 것입니다 . 이 계정을 secretkeeper예로 들어 보겠습니다 . 그런 다음 다음과 같이 시스템 관리자에게 계정에 대한 제한된 sudo 액세스 권한을 부여할 수 있습니다( sudoers파일 구문).

User_Alias ADMINUSERS=sysadmin1, sysadmin2, sysadmin3 #...etc.

ADMINUSERS ALL=(secretkeeper) /usr/bin/ssh secretremote

사용자 편의성을 위해 ~secretkeeper/.ssh/config가능한 한 많은 연결 매개변수를 지정하십시오.

Host secretremote
    User topsecret
    HostName remote.org
    EscapeChar none
    IdentityFile /some/where/ts_key.priv

이제 귀하 sysadmin1와 다른 사람들은 를 실행할 수 있지만 sudo -u secretkeeper ssh secretremote다른 명령을 통해서는 실행할 수 없습니다 sudo( sudoers달리 정의되지 않는 한). 키워드일 뿐이며 및 파일에서 동일 secretremote하다면 무엇이든 될 수 있습니다 .sudoers~secretkeeper/.ssh/config

파일에 지정된 명령에는 sudoers매개변수가 포함되어 있으므로 해당 특정 명령만 허용됩니다. sudo해당 명령(및 해당 명령만)은 SSH secretkeeper구성 파일과 개인 키를 읽을 수 있는 user 로 실행되고 연결을 설정할 수 있습니다. sudo세션은 해당 명령만 실행하므로 SSH ssh연결이 끊어지면 sudo세션이 종료됩니다. secretkeeper대화형 셸은 사용자로 실행되지 않습니다.

물론 이를 위해서는 시스템 관리자에게 gateway.org시스템에 대한 루트 액세스 권한이 없어야 합니다.

관련 정보