ssh 액세스가 활성화 된 hostgator 계정이 있습니다. 이 명령으로 생성 된 .pub 키 파일을 업로드하려고 할 때 :
rsync -av -e "ssh -p2222" /home/user/.ssh/key.pub username@111.222.33.44:.ssh/authorized_keys
나는 계속 받고있다 :
111.222.33.44와의 연결 끊김 : 2 : 사용자 이름에 대한 인증 실패가 너무 많습니다 rsync : 연결이 예기치 않게 종료되었습니다 (지금까지 0 바이트 수신) [송신자] rsync 오류 : io.c (601)에서 설명 할 수없는 오류 (코드 255) [sender = 3.0.7]
인증 실패가 발생할 때까지 ssh로 이전에 놀았습니다. 그러나 이제 인증 실패 카운터가 재설정되지 않는 것 같습니다 (지금 12 시간 이상 기다렸다가 기술 지원팀에서 30 분에서 1 시간 후에 재설정한다고 “제안”하고 다른 사람이 “로그인 할 때마다 재설정 됨” 사용자 이름 “, jeesh).
이것은 나를 미치게합니다. 나는 이것을 Slicehost 커스텀 서버에 설치 했으며이 사람들보다 문제가 적었습니다.
팁이 있습니까? 아마도 서버 측이 아닌 클라이언트 측 일 것입니다.
답변
이는 일반적 으로 서버에 여러 개의 ssh 키 를 실수로 제공 하여 발생합니다. 너무 많은 키가 제공되면 서버는 모든 키를 거부합니다.
자세한 출력을 얻기 위해 명령에 -v
플래그를 추가하여이를 직접 확인할 수 있습니다 ssh
. 서버가 “[user]에 대해 너무 많은 인증 실패” 라는 연결을 거부 할 때까지 많은 키가 제공됩니다 . 상세 모드가 없으면 “연결이 피어에 의해 재설정되었습니다” 라는 모호한 메시지 만 표시됩니다 .
관련이없는 키가 제공되지 않도록하려면 다음과 같이 ~/.ssh/config
추가하여 (클라이언트 시스템의) 파일의 모든 호스트 항목에서이를 명시 적으로 지정해야합니다 IdentitiesOnly
.
Host www.somehost.com
IdentityFile ~/.ssh/key_for_somehost_rsa
IdentitiesOnly yes
Port 22
ssh-agent를 사용 ssh-add -D
하면 ID를 지우는 데 도움이됩니다 .
ssh 호스트 구성을 사용하지 않는 경우 다음 ssh
과 같이 명령에 올바른 키를 명시 적으로 지정해야합니다 .
ssh -i some_id_rsa -o 'IdentitiesOnly yes' them@there:/path/
참고 : ‘IdentitiesOnly yes’매개 변수는 따옴표 사이 여야합니다.
또는
ssh -i some_id_rsa -o IdentitiesOnly=yes them@there:/path/
답변
암호 인증을 사용하는 경우 더 쉬운 방법을 찾았습니다.
ssh -o PubkeyAuthentication=no username@hostname.com
이것은 키가 아닌 인증을 강제합니다. 즉시 로그온 할 수있었습니다.
답변
이 오류가 발생하여 서버가 최대 6 번의 시도를 수락하도록 구성된 b / c에서 발생하고 있음을 발견했습니다.
/etc/ssh/sshd_config
...
...
#MaxAuthTries 6
파일 IdentitiesOnly yes
에서 를 설정하는 것 외에도 ~/.ssh/config
몇 가지 다른 옵션이 있습니다.
- 증가
MaxAuthTries
(SSH 서버에) ~/.ssh/
디렉토리에 존재하는 키 쌍 중 일부를 삭제하고 실행하십시오.ssh-add -D
~/.ssh/config
파일 의 지정된 호스트에 키를 명시 적으로 연결
이렇게 :
host foo
hostname foo.example.com
IdentityFile /home/YOU/.ssh/foo
-
주어진 연결 시도에서 더 많은 키를 허용하므로 ssh 서버가 약간 약해지기 때문에 아마 좋은 방법이 아닐 것입니다. 여기서 무차별 대입 공격 벡터를 생각하십시오.
-
필요하지 않고 영구적으로 삭제할 수있는 키가 있다고 가정하는 것이 좋습니다.
-
그리고 IdentitiesOnly를 설정하는 접근법은 아마도이 문제를 다루는 선호되는 방법 일 것입니다!
답변
~ / .ssh / config에 다음을 추가했습니다.
Host *
IdentitiesOnly yes
기본적으로 IdentitiesOnly = yes 옵션을 활성화합니다. 개인 키로 연결해야하는 경우 옵션 -i로 지정해야합니다.
답변
다음과 같은 SSH 오류가 발생하면 :
$ Received disconnect from host: 2: Too many authentication failures for root
.ssh 디렉토리에 5 개 이상의 DSA / RSA 자격 증명 파일이 저장되어 있고 명령 줄에 ‘-i’옵션이 지정되어 있지 않은 경우에 발생할 수 있습니다.
ssh 클라이언트는 먼저 각 ID (비공개 키)와 다음 비밀번호 인증 프롬프트를 사용하여 로그인을 시도합니다. 그러나 sshd는 5 번의 잘못된 로그인 시도 후 연결을 끊습니다 (기본값은 다를 수 있음).
.ssh 디렉토리에 다수의 개인 키가있는 경우 명령 행에서 ‘-o’선택적 인수를 사용하여 “공개 키 인증”을 비활성화 할 수 있습니다.
예를 들면 다음과 같습니다.
$ ssh -o PubkeyAuthentication=no root@host
답변
비밀번호가 있고 단순히 비밀번호를 사용하여 로그인하려면 다음과 같이하십시오.
암호 인증 만 사용하고 공개 키를 사용하지 않고 다소 잘못된 “키보드 대화 형”(암호를 포함하는 슈퍼 세트)을 사용하지 않으려면 명령 행에서이를 수행 할 수 있습니다.
ssh -o PreferredAuthentications=password user@example.com
답변
@David를 말하고 IdentitiesOnly yes
.ssh / config에 추가하면
다음과 같습니다.ssh -o PubkeyAuthentication=no.
로그인 한 후을 제거하십시오 .ssh/authorized_keys
. 이제 로컬 머신으로 돌아가서 다음을 입력하십시오.
cat ~/.ssh/id_rsa.pub | ssh -o PubkeyAuthentication=no user@IP_ADDR 'cat >> .ssh/authorized_keys'
. 공개 키로 ssh를 다시 활성화해야합니다.