* username *에 대한 인증 실패가 너무 많습니다. : 2 : 사용자 이름에 대한

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몇 가지 다른 옵션이 있습니다.

  1. 증가 MaxAuthTries(SSH 서버에)
  2. ~/.ssh/디렉토리에 존재하는 키 쌍 ​​중 일부를 삭제하고 실행하십시오.ssh-add -D
  3. ~/.ssh/config파일 의 지정된 호스트에 키를 명시 적으로 연결

이렇게 :

host foo
hostname foo.example.com
IdentityFile /home/YOU/.ssh/foo
  1. 주어진 연결 시도에서 더 많은 키를 허용하므로 ssh 서버가 약간 약해지기 때문에 아마 좋은 방법이 아닐 것입니다. 여기서 무차별 대입 공격 벡터를 생각하십시오.

  2. 필요하지 않고 영구적으로 삭제할 수있는 키가 있다고 가정하는 것이 좋습니다.

  3. 그리고 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를 다시 활성화해야합니다.