루프백 SSH를 설정하려고 할 때 공개 키를 설치한 후 비밀번호를 묻는 메시지가 표시되었습니다. 이는 CentOS 6.4 서버입니다. ssh_config( grep -v ^# /etc/ssh/sshd_config | grep -v ^$
)는 여기에 있습니다:http://pastebin.com/Wg6iuL3x
관련된 두 사용자는 루트와 git입니다.
# clean root dir
cd ~/.ssh/ && rm -f $(ls | grep -i 'rsa\|dsa')
echo '' > known_hosts
# clean git dir
/home/git/.ssh/ && rm -f $(ls | grep -v 'authorized_keys')
chmod 0700 /home/git/.ssh && chmod 0600 /home/git/.ssh/authorized_keys
echo '' > authorized_keys
# back to root
ssh-keygen -f ~/.ssh/git_dsa -t dsa -N ''
cat ~/.ssh/git_dsa.pub >> /home/git/.ssh/authorized_keys
ssh -vvv git@localhost
git@localhost's password:
...
이것은 -v
로그 입니다
debug1: Next authentication method: publickey
debug1: Offering public key: git.rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Offering public key: git.dsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /root/.ssh/identity
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Next authentication method: password
로그는 -vvv
여기에 있습니다:http://pastebin.com/j7iGvvMH
노트
git_dsa.pub 키가 표시되거나 인식되지 않는 것 같습니다. 문제의 원인이 확실합니까?
답변1
SELinux를 사용하는 데 문제가 있을 수 있습니다. 보안을 매우 중요하게 생각하고(결국 루프백 SSH를 사용하고 있음) 보안을 비활성화하고 싶지 않다고 가정하면 루트로 다음을 수행하십시오.
restorecon -R -v /home/git/.ssh
정말로 비활성화하려면 /etc/selinux/config를 편집하고 거기에서 SELINUX=permissive를 설정하십시오.
답변2
ssh에게 git_dsa 키를 사용하라고 지시하지 않았습니다:
ssh -i /root/.ssh/git_dsa git@localhost
또는 /root/.ssh/config
적절한 IdentityFile
지시어를 편집하고 추가하세요.