* username *에 대한 인증 실패가 너무 많습니다.


256

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 커스텀 서버에 설치 했으며이 사람들보다 문제가 적었습니다.

팁이 있습니까? 아마도 서버 측이 아닌 클라이언트 측 일 것입니다.


제 경우에는 키 생성에 실수가 있습니다. 키를 생성했으며 소스 주소를 언급하지 못했고 키 끝에 사용자 이름을 사용했습니다.
기자

답변:


416

이는 일반적 으로 서버에 여러 개의 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/

5
이 줄을 어디에 두어야하는지 명확하지 않습니다. 로그인하려는 서버에서 .ssh / config에는 다른 서버에 대한 정보 만 있습니다. 이것이 내가 ssh하려는 컴퓨터의 .ssh / config 파일에 있어야한다는 것을 의미합니까? 그렇다면 답변이 "다시 로그인 한 경우 ..."라고 표시되어 있기 때문에 명확하지 않습니다.
David LeBauer

2
옵션은 다음과 같이 큰 따옴표로 묶어야합니다.ssh -i some_id_rsa -o "IdentitiesOnly yes" them@there:/path/
knb

1
PAGENT (Putty Agent)를 실행중인 Windows 사용자는로드해야하는 키만 있는지 확인하십시오. 실수로 모든 개인 키를로드 한 후이 문제가 발생했습니다.
Chris Rasco

2
문제는 호스트에 대한 규칙에 명시적인 설정 이 있어도 ssh"여러 키를 제공"하는 이유는 무엇입니까 ? 이 명시 적으로 지정된 키를 (최소한) 먼저 제공해서는 안됩니까? openssh 클라이언트의 버그 / 악화가 아닙니까? ~/.sshIdentityFile /path/to/private_key_file
arielf

2
그러나 IdentityFile옵션으로 지정된 키를 사용해서는 안 됩니까? 예를 들어 IdentitiesOnly옵션이 없으면 시도 할 때 내 github키 를 사용 하려고합니다 ssh gitlab.com. 그것은 말도 안돼.
Iulian Onofrei

188

암호 인증을 사용하는 경우 더 쉬운 방법을 찾았습니다.

ssh -o PubkeyAuthentication=no username@hostname.com

이것은 키가 아닌 인증을 강제합니다. 즉시 로그온 할 수있었습니다.

참고


3
+1, 더 줄 수 있으면 좋겠다. Raspberry Pi는 공개 키가없는 유일한 장치입니다. 점점되었다 "파이에 대한 너무 많은 인증 실패"
blak3r

1
그리고 사용하는 그와 rsync:rsync -av -e 'ssh -o PubkeyAuthentication=no' 'user@host.com:~/remote_file' 'local_file'
치로 틸리는新疆改造中心法轮功六四事件

1
비밀번호 인증을 위해 더 빠르게 별칭을 만들 수도 있습니다. 별명 sshp = '는 ssh -o PubkeyAuthentication = 아니오'
dhempler

26

이 오류가 발생하여 서버가 최대 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를 설정하는 접근법은 아마도이 문제를 다루는 선호되는 방법 일 것입니다!


마지막 줄에는 식별 파일 /home/YOU/.ssh/foo가 있지만 ID 파일이어야합니다 (f는 아님)
Nin

7

~ / .ssh / config에 다음을 추가했습니다.

Host *
IdentitiesOnly yes

기본적으로 IdentitiesOnly = yes 옵션을 활성화합니다. 개인 키로 연결해야하는 경우 옵션 -i로 지정해야합니다.


6

다음과 같은 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

이것은 정확히 나에게 일어난 일이었습니다! 설명에 감사드립니다;)
El Ninja Trepador

6

비밀번호가 있고 단순히 비밀번호를 사용하여 로그인하려면 다음과 같이하십시오.

암호 인증 만 사용하고 공개 키를 사용하지 않고 다소 잘못된 "키보드 대화 형"(암호를 포함하는 슈퍼 세트)을 사용하지 않으려면 명령 행에서이를 수행 할 수 있습니다.

ssh -o PreferredAuthentications=password user@example.com

3

@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를 다시 활성화해야합니다.


2

나는 이것이 오래된 스레드라는 것을 알고 있지만 여기에 동일한 오류 메시지가 표시되도록 추가하고 싶었지만 .ssh 폴더의 소유자가 키를 사용하는 사용자가 아닌 루트이기 때문에 발생했습니다. 다음 명령을 실행하여 문제를 해결했습니다.

sudo chown -R user:user /home/user/.ssh

또한 .ssh 폴더에 대한 권한이 올바른지 확인했습니다.

sudo chmod 700 /home/user/.ssh

.ssh 디렉토리 내의 파일은 600의 권한을 가져야합니다.

sudo chmod 600 /home/user/.ssh/authorized_keys

경고없이 이것을 사용하는 데주의를 기울일 것입니다. SSH 키 권한은 일반적으로 일부 키, 특히 AWS의 경우 400으로 제한됩니다. 이를 위에 설정하려고 시도하면 키가 수락되지 않아 AWS 계정에서 사용자를 잠글 수 있습니다.
Michael Ryan Soileau

1

필자의 경우 문제는 디렉토리 권한이었습니다. 이것은 나를 위해 그것을 고쳤다 :

$ chmod 750 ~;chmod 700 ~/.ssh


0

에 공개 키가 .ssh/authorized_keys2있지만 서버는 읽기 전용으로 구성되었습니다 .ssh/authorized_keys.

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys

파일을로 이동 한 후 .ssh/authorized_keys키를 사용하여 성공적으로 로그인 할 수 있습니다.


0

인증 실패가 너무 많습니다

이 메시지는 원격 SSH 서버에 적용되는 허용 된 제한이 주어지면 인증 시도가 너무 많이 실패하여 발생합니다. 이는 잠재적으로 SSH 에이전트에 ID가 너무 많이 추가되었음을 의미합니다.

다음은 몇 가지 제안입니다.

  • -v경우에 해당하는지 추가 합니다 (너무 많은 ID를 사용하고 있음).
  • 추가 한 자격 증명을 기준으로 나열합니다 ssh-add -l.
  • 다음을 수행하여 에이전트에서 실패한 ID를 제거하십시오 ssh-add -d..
  • 또한 모든 자격 증명을 삭제하고 관련 자격 증명 ssh-add -D만 다시 추가 할 수도 있습니다 .
  • SSH 서버에 액세스 한 경우 MaxAuthTries옵션을 확인하십시오 (참조 man sshd_config).

    관련 게시물 : 'MaxAuthTries'제한에 대한 연결은 무엇입니까 sshd_config?

  • 이 도움말이 없으면 올바른 자격 증명 또는 파일을 사용하고 있는지 확인하십시오.


-1

이 메시지는 올바른 사용자 이름과 비밀번호를 입력하지 않은 경우에 나타날 수 있습니다.

먼저 사용자가 나열되어 있는지 확인하십시오.

vim /etc/passwd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.