게이트웨이 서버( ) 에서 SSH 키 쌍을 사용하여 액세스 [email protected]
할 수 있는 SSH 계정이 있습니다 . 이 계정에 액세스해야 하는 시스템 관리자가 많이 있습니다. 그들 각각은 자신의 SSH 계정을 가지고 있습니다 .ts_key.pub/ts_key.priv
gateway.org
gateway.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
시스템에 대한 루트 액세스 권한이 없어야 합니다.