통제할 수 없는 이유로 우리 팀은 일부 시스템의 비사용자 셸을 통해 사용자 계정을 공유합니다. 우리 둘 다 암호로 보호된 개인 키를 공유 사용자의 ~/.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_login
Bash. 셸을 로그인 셸로 시작하려면 사용해야 함 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
이렇게 하면 공유 사용자 디렉터리에 개인 키 파일을 넣을 필요가 없습니다.