ssh-copy-id-권한 거부 (공개 키) [닫힘]


30

가상 머신이있는 컴퓨터에있는 mysql 서버에 ssh 터널을 설정하고 싶습니다. 또한 머신을 다시 시작하면 터널이 작동해야합니다.

A가 리눅스 소프트웨어가있는 컴퓨터라고하자. B-컴퓨터 A의 가상 머신

MySQL은 B에 있습니다.

C-B의 MySQL에 연결하려는 컴퓨터 A의 가상 머신입니다.

이제이 기사에서 : http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/

공개 키를 원격 서버에 복사하려고합니다. 컴퓨터 A에 복사해야한다고 생각합니다.

ssh-copy-id -i id_rsa.pub.bak [user]@[IP of A] -p [port of A]
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

이제 파일 id_rsa.pub.bak의 암호를 입력했습니다. 거부되었습니다.

그런 다음 복사하려고하는 공개 키와 다른 /home/[user]/.ssh/id_rsa의 키를 사용한다는 것을 알았습니다. 물론 개인 키가 다르지만 다른 키의 공개 키를 복사한다는 의미입니다. 개인 키. 그래서 암호를 사용해 보았습니다. 또한 거부되었습니다.

암호 문구가 거부 된 이유를 어떻게 디버깅 할 수 있습니까?

최신 정보

의견을 바탕으로 id_rsa.pub라는 새로운 공개 파일을 만들었습니다. 여기서 모든 것이 한 줄에 있습니다.

실행하고 여전히 오류가 발생합니다.

ssh-copy-id -i id_rsa.pub [host and port] -vvv
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

최신 정보

A 컴퓨터의 .ssh 폴더 및 certified_keys 파일에 대한 권한을 확인했습니다. 의견이 양호하다고 말하면 700 및 600입니다.

최신 정보

컴퓨터에서 암호 인증을 예로 설정하고 서비스를 다시 시작했습니다. 대답에 따라 다시 시작해도 작동하지 않아 sshd가 인식되지 않아서 다음을 사용하여 다시 시작했습니다.

sudo /etc/init.d/ssh restart

그런 다음 C 컴퓨터에서 다시 시도하여 A 컴퓨터로 복사하십시오.

ssh-copy-id -i id_rsa.pub [user@host] -p [port] -v

그리고 여전히 동일합니다 :

Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

authorized_keys에 키를 수동으로 복사하면 공개 키가 이미 존재합니다. 복사하려는 것과 같습니다. 나는 동료에게 물었다. 그래서 나는 그것이 어떻게 존재할 수 있는지 이해조차하지 못합니다.

좋아, 거기에 있으면 좋을 것이지만 거기에 머물면 암호를 입력하지 않고 ssh에 연결할 수 없습니다. 그러나 암호 입력과 연결할 수있었습니다. 따라서 여기에는 여전히 문제가 있습니다. 그리고 복사하려고하는 열쇠는 빈 암호 문구입니다. ssh와 연결할 때 비어 있지 않은 암호를 입력했습니다.

동일한 공개 키는 빈 암호와 비 빈 암호를 허용 할 수 없습니다. 그렇다면 왜 암호 문구가 다른 경우 업로드하려고하는 공개 키가 authorized_keys 파일의 공개 키와 동일한 이유는 무엇입니까? 모든 단일 문자를 확인하지는 않았지만 암호가 다른 경우에도 키가 너무 유사하여 시작과 끝이 동일하지는 않습니다.


어떤 파일로 시작 id_rsa합니까? 으로 ssh-copy-id끝나는 파일을 기대하므로 오류 메시지와 함께 오류 메시지와 함께 실패 할 것으로 예상 됩니다 .pub. 당신의 끝으로 .bak아마 사용 id_rsa.pub.bak.pub합니다.
nlu

@nlu-메모장 ftp 탐색기를 사용하여 파일을 끌어다 놓아 복사 한 id_rsa가 있습니다. 또한 메모장에서 마우스를 사용하여 nano로 붙여 넣은 내용으로 만든 id_rsa.bak가 있지만 ++는 동일한 텍스트를 만들지 만 어떻게 든 2 열입니다. 또한 nano로 만든 id_rsa.pub.bak도 있습니다. 실제로 3 줄이 있지만 원본은 한 줄에 있습니다. 중요하지 않습니다. 그러나 우리가 보는 것처럼 파일 이름에 대한 오류 메시지가 나타나지 않았습니다.
다리우스. V

1
그렇습니다. 예를 들면 다음과 같습니다. snailbook.com/faq/publickey-userauth.auto.html ( "텍스트 편집기를 사용하는 경우이 파일의 줄을 끊지 않도록주의하십시오.").
nlu

비즈니스 환경에서는 시스템이 아니라고 생각하기 때문에 질문이 마감되었지만 비즈니스 환경 문제를 해결하고있었습니다.
다리우스. V

답변:


25

실제로 키를 복사하려면 로그인해야합니다. 원격 시스템에 액세스 할 수 없습니다 (잘못된 키 및 비밀번호 인증이 비활성화 됨).

/ etc / ssh / sshd_config에서 비밀번호 인증을 다시 활성화하십시오.

PasswordAuthentication yes

그런 다음 서비스를 다시 시작하십시오.

service sshd restart

공개 키를 복사하십시오.

ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST -p PORT
[Enter user password]

다시 로그인을 시도하면 비밀번호가 필요하지 않습니다.

그런 다음 비밀번호 인증을 비활성화하십시오.


로그인하려는 서버에서 PasswordAuth를 yes로 설정하고 비밀번호를 사용하여 퍼티에 연결할 수 있지만 ssh-copy-id는 여전히 비밀번호를 묻지 않고 권한 거부 (공개 키) 만 기록합니다. ?
다리우스. V

이봐, 난 고맙다고 말하고 싶어 !!! 당신은 내 하루를 저장 !!! 정말 고마워!!!
尤川豪

@Nabil 덕분에 우분투 18.04부터 작동합니다. 미래 독자들에게주의 할 점 : 지침에 따라 / etc / ssh / sshd_config를 편집하고 ssh_config가 아닌 감독에 의해 편집하십시오 (I처럼)! 또한 ssh-copy-id USER @ HOST로 충분합니다.
Snidhi Sofpro 13:30에

12

Permission denied (publickey) "공개 키만 인증 방법으로 사용합니다."라는 원격 SSH 서버입니다.

이것이 가장 큰 과제입니다 : 원격 시스템에 접근하기. 그렇게하면 키를 업로드 할 수 있습니다.

  • 사용 ssh-copy-id-예를 들어 이전 키를 교체하는 과정에서 다른 키를 지정할 수 있습니다.
  • 원격 사용자를 편집 ~/.ssh/authorized_keys하여 키를 수동으로 추가하십시오.

5

마침내 문제를 발견했습니다.

실제로 공개 키를 복사 할 필요가 없었습니다. 암호 키가 있고 암호가없는 개인 키 모두 동일한 공개 키입니다. 암호가없는 개인 키가 있다고 생각했지만 실제로는 그렇지 않았습니다. 암호 문구없이 .ppk 만있었습니다. 의사 소통이 빠졌습니다. 그래서 동료는 암호없이 개인 키를 만들었으므로 이제 암호없이 ssh를 사용하여 로그인 할 수 있습니다. 암호 문구가없는 것은 나쁘다는 것을 읽었지만 동료는 괜찮습니다. 재부팅시 쉘 스크립트를 실행해야하기 때문에 암호 문구가 필요하지 않았습니다. 컴퓨터 재부팅시 autossh를 시작하고 싶습니다.

암호가없는 상태에서 로그인하려면 개인 키에 암호가 없는지 확인하십시오.

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