내 서버에서 비밀번호와 공개 키 인증을 모두 사용할 수 있습니다. 명시적으로 지정된 키를 사용하여 클라이언트에서 로그인할 수 있습니다.
ssh user@host -i id_rsa
키 파일을 지정하지 않으면 비밀번호를 묻습니다. 하지만 기본적으로 키 파일을 사용하여 로그인하고 싶습니다.
~/.ssh/config에 몇 가지 내용을 넣을 수 있는 팁을 찾았습니다. 그래서 다음과 같이 지정했습니다.
Host xxx
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
User uuu
구성이 해석됩니다. 사용자 "uuu"를 사용하지만 키 파일은 여전히 무시됩니다. ssh가 기본적으로 이를 사용하도록 하려면 어떻게 해야 합니까?
답변1
파일 모드가 0600( )인 디렉터리 ~/.ssh
와 개인 키가 있는 경우 자동으로 사용되며 공개 키 인증이 실패한 경우에만 비밀번호가 필요합니다. 이 조건이 모두 충족되는지 확인하세요. 이 옵션은 일반적으로 인증이 필요할 때 사용됩니다.id_rsa
~/.ssh
-rw-------
ssh
-i
다른열쇠.
답변2
구성 파일은 다음과 같아야 합니다.
Host xxx
User user
IdentityFile ~/.ssh/id_rsa
파일이 올바른지 확인해야 합니다.
~/.ssh/id_rsa : rwx------
원격 호스트에서:
/home/user
: 그룹 및 기타 사용자는 쓰기 권한이 없습니다./home/user/.ssh
:rwx------
원격 호스트의 로그 파일을 확인하면 몇 가지 오류 메시지를 볼 수 있습니다.
tail -f /var/log/auth.log
답변3
SSH를 지원하는 서버가 있고 서버에 연결하려는 클라이언트가 있다고 가정하면 클라이언트 컴퓨터에서 개인 및 공개 키를 생성하고 서버에 공개 키를 복사해야 합니다.
이 작업을 수행하기 전에 SSH 서버가 클라이언트 인증 키를 찾는 위치를 확인해야 합니다. SSH 서버 구성 파일 /etc/ssh/sshd_config를 확인하고 다음 줄을 찾아야 합니다.
AuthorizedKeysFile .ssh/authorized_keys
이는 서버가 authorized_keys
각 사용자의 홈 디렉터리에 있는 file이라는 .ssh
폴더에서 해당 사용자에게 로그인 권한을 부여하는 공개 키를 검색 한다는 것을 의미합니다.
이제 클라이언트에서 생성된 SSH 키를 사용했다고 말했듯이, authorized_keys
로그인하려는 사용자의 공개 키 내용을 서버의 파일에 복사해야 합니다.
이를 단순화하기 위한 단계는 다음과 같습니다.
- 지침을 보려면 서버를 검색하세요
AuthorizedKeysFile
./etc/ssh/sshd_config
- 클라이언트에서 개인 및 공개 키를 생성합니다(이미 수행했습니다).
authorized_keys
로그인하려는 사용자의 클라이언트 공개 키 내용을 서버의 파일에 복사합니다 . 사용자로 로그인하려면username
공개 키를 파일에 복사해야 합니다/home/username/.ssh/authorized_keys
(또는 파일이 없으면 생성해야 합니다).
도움이 되었기를 바랍니다.
답변4
다들 감사 해요. 이것은 ssh-agent에 문제가 있는 것 같습니다. 다시 시작한 후에는 모든 것이 정상입니다. 서버에서 허용되는 로그인 방법이 변경되면 일부 구성이 즉시 새로 고쳐지지 않는 것 같습니다.