비사용자 셸에서 ssh-agent 세션에 자동으로 로그인

비사용자 셸에서 ssh-agent 세션에 자동으로 로그인

통제할 수 없는 이유로 우리 팀은 일부 시스템의 비사용자 셸을 통해 사용자 계정을 공유합니다. 우리 둘 다 암호로 보호된 개인 키를 공유 사용자의 ~/.ssh 디렉토리로 옮겼습니다. 우리는 일반적으로 로그인하여 ssh-agent세션을 연 다음 ssh-add아래와 같이 비밀번호로 키를 보호합니다. 우리 중 누구도 이 작업 흐름을 좋아하지 않으며 이를 더 쉽게 만들기 위해 노력하고 있습니다.

공유 사용자의 셸을 열 때 자동으로 비밀번호를 묻는 메시지를 표시하는 방법이 있나요?

sudo -u shared /bin/bash
# new shell opens
eval `ssh-agent -s`
ssh-add ~/.ssh/my_username_rsa
# enter passphrase and continue...

답변1

그러면 추가할 키는 sudo 세션을 시작한 사용자에 따라 달라져야 합니까? 어쩌면 환경 SUDO_USER변수가 필요한 것일 수도 있습니다.

shared사용자의 셸 시작 파일(예: .bash_loginBash. 셸을 로그인 셸로 시작하려면 사용해야 함 sudo -i) 에 다음과 같은 내용을 입력하세요 .

eval $(ssh-agent -s)
ssh-add ~/.ssh/${SUDO_USER}_rsa

심지어

if [ "$SUDO_USER" = userthis ] ; then 
    echo do something for this user
elif...
fi

물론 이러한 공유 계정의 단점은 모든 사람이 실제로 서로의 키를 갖는다는 점입니다. 키는 단일 사용자 ID에 보관되고 공유 계정의 다른 사용자를 구분할 수 있는 것이 없기 때문입니다.

ssh-agent이전 에 일반 계정으로 시작한 sudo다음 sudoed 쉘에서 사용할 수 있는지 잘 모르겠습니다. 적어도 프록시 소켓에 대한 권한을 수정해야 한다고 생각합니다. 그러면 동일한 계정의 다른 사용자도 복사할 수는 없지만 프록시의 키를 사용할 수 있습니다.

답변2

나는 당신처럼 될 것입니다:

eval $(ssh-agent -s)
ssh -A shared@localhost

이렇게 하면 공유 사용자 디렉터리에 개인 키 파일을 넣을 필요가 없습니다.

관련 정보