일반 로그인 대신 RSA 키를 사용하여 SSH에 로그인

일반 로그인 대신 RSA 키를 사용하여 SSH에 로그인

ssh-keygenKali 폴더에 키 쌍을 생성하는 데 사용합니다 ~/.ssh.

엄청난. 에 공개 키도 추가했습니다 ~/.ssh/authorized_keys. 600파일에 대한 권한도 설정되었습니다.

결과 :

  • Putty: ip_rsa.ppk 사용 - trunks@lanIP 로 로그인합니다 invalid format.
  • PowerShell 텔넷: ssh trunks@lanip -i 개인 키 파일 경로 - invalid format.

나는 심지어 openSSH로 변환했지만 아무 소용이 없었습니다. 내가 뭘 잘못했나요? 사용자 이름, 비밀번호 등 일반 로그인 계정에 계속 로그인하는데, 이는 내가 원하는 것과 다릅니다. 한숨을 쉬다. 이전에는 이 문제가 발생하지 않았습니다. Putty는 소프트웨어를 업데이트해야 합니다. 진지하게.

공개 키를 확인해 보니 길고 올바른 형식의 문자열이었습니다. 저는 퍼티 텔넷과 DD-WRT의 공개 키 문자열을 아무 문제 없이 사용하고 있습니다.

답변1

ssh-keygen세 가지 형식의 파일을 생성할 수 있습니다.

  • OpenSSH 자체 형식(RFC4716, 기본값),
  • PKCS8 및
  • PEM 형식.

개인 키의 첫 번째 줄로 구분할 수 있습니다.

  • 라고 되어 있으면 "-----BEGIN OPENSSH PRIVATE KEY-----"RFC4716이고,
  • 라고 표시되면 "-----BEGIN RSA PRIVATE KEY-----"PEM이고
  • 그렇다면 "-----BEGIN PRIVATE KEY-----"PKCS8입니다.

모든 경우에 공개 키는 동일하게 보입니다. 또한 이러한 형식 간에 자유롭게 변환할 수도 있습니다.

PowerShell에서 OpenSSH를 사용하고 있습니다. 를 실행하여 이를 확인할 수 있습니다 ssh -V. 이러한 형식의 키와 직접 작동해야 합니다.

ssh-keygen생성된 파일을 Putty의 ppk 형식 으로 변환하려면 를 사용하세요 puttygen. 또는 생성 키를 사용하면 puttygenOpenSSH 형식으로 변환됩니다.

공개 키에는 "Type Key Comment"라는 세 부분이 포함되어 있으며, 마지막 부분은 선택 사항이며 자유롭게 변경할 수 있습니다. 파일 에서 키에 레이블을 지정하는 데 사용할 수 있습니다 authorized_keys(예: 해당 개인 키가 어디에 있는지 또는 누구의 키인지 설명하기 위해). 다른 부분은 그대로 복사해야 합니다. 공개 키는 항상하나의 선, 별도의 줄로 파일에 추가되어야 합니다 authorized_keys.

인증 메커니즘을 사용하여 대상 호스트에 SSH로 연결할 수 있는 경우 파일이 존재하지 않으면 ssh-copy-id target-host올바른 권한을 사용하여 파일을 생성하고 거기에 개인 키를 추가하거나 파일이 존재하지만 키가 있는 경우 시도해 보십시오. 비밀 키가 추가됩니다. 키는 .ssh/authorized_keys파일에 없습니다. 이러한 파일을 작성하는 또 다른 방법은 cat id_rsa.pub >> authorized_keys.

답변2

복사/붙여넣기한 개인 키의 파일 크기가 원래 개인 키의 파일 크기와 동일한지 확인하겠습니다. 텍스트 편집기는 파일 끝에 개행 문자를 추가하거나 무시하여 이 문제를 일으킬 수 있습니다.

관련 정보