기본적으로 ssh-copy-id -i blah.pub user@host는 -i로 지정된 공개 키의 개인 키 형식으로 로그인합니까, 아니면 ~/.ssh/id_rsa로 로그인합니까?"

기본적으로 ssh-copy-id -i blah.pub user@host는 -i로 지정된 공개 키의 개인 키 형식으로 로그인합니까, 아니면 ~/.ssh/id_rsa로 로그인합니까?"

-i로 지정한 개인키의 공개키 형태로 로그인 합니까 ssh-copy-id -i blah.pub user@host, 아니면 로 로그인합니까 ~/.ssh/id_rsa?"

대답이 ~/.ssh/id_rsa, / SSH가 기본적으로 사용하는 키를 사용하여 로그인하고 -i로 지정된 공개 키의 개인 키 형식을 사용하지 않는다는 것이라면 여기서 오류가 발생하는 이유는 무엇입니까?

나는 개인 및 공개 키 쌍인 Rodney와 Rodney.pub를 가지고 있습니다. 파일 이름을 Rodney로 바꾸고 ssh-copy-id -i ./rodney.pub user@ip를 수행하면 로그인할 것으로 예상됩니다. "ERROR: failed to open ID file './rodney': No such file" 오류가 발생하더라도 추가를 수행하세요. Roddney의 이름을 Rodney로 바꾸면 해당 오류가 발생하지 않습니다. ssh-copy-id가 수행하는 작업이 ssh(기본적으로 로그인에 id_rsa를 사용하는 경우)뿐이라면 Rodney 개인 키가 필요하거나 신경쓰이는 이유는 무엇입니까?

답변1

ssh-copy-id -i blah.pub user@host, -i로 지정한 공개키의 개인키 형태로 로그인하나요, 아니면 ~/.ssh/id_rsa로 로그인하나요?"

-i로 지정한 공개키의 개인키 형태로는 로그인하지 않습니다.

ssh가 기본적으로 사용하는 키로 로그인합니다. ~/.ssh/id_rsa(아마도 ssh-agent가 실행 중인 경우 ssh는 다른 키를 시도할 수 있지만 어느 쪽이든 .. -i로 지정된 공개 키의 개인 키 형식으로 로그인하지 않습니다). ssh-agent가 실행되고 있지 않다고 가정해 보겠습니다. 이는 질문에서도 가정이라고 생각합니다.

대답이 ~/.ssh/id_rsa, / SSH가 기본적으로 사용하는 키를 사용하여 로그인하고 -i로 지정된 공개 키의 개인 키 형식을 사용하지 않는다는 것이라면 여기서 오류가 발생하는 이유는 무엇입니까?

나는 개인 및 공개 키 쌍인 Rodney와 Rodney.pub를 가지고 있습니다. 파일 이름을 Rodney로 바꾸고 ssh-copy-id -i ./rodney.pub user@ip를 수행하면 로그인할 것으로 예상됩니다. "ERROR: failed to open ID file './rodney': No such file" 오류가 발생하더라도 추가를 수행하세요. Roddney의 이름을 Rodney로 바꾸면 해당 오류가 발생하지 않습니다. ssh-copy-id가 수행하는 작업이 ssh(기본적으로 로그인에 id_rsa를 사용하는 경우)뿐이라면 Rodney 개인 키가 필요하거나 신경쓰이는 이유는 무엇입니까?

얼마 전 SSH 전문가와 이에 대해 이야기를 나눴습니다.

내 사용 사례는 랩톱과 일부 VPS를 가지고 있었고 하나의 VPS를 다른 모든 VPS에 SSH/SFTP로 연결하고 싶었습니다. 내 노트북에는 이미 모든 VPS에 대한 SSH 액세스 권한이 있었습니다.

내가 할 수 있었던 일은 랩톱에서 키 쌍을 생성한 다음 모든 VPS에 대한 공개 키를 ssh-copy-id하는 것이었습니다. 그런 다음 노트북에서 생성한 개인 키를 첫 번째 VPS로 이동하거나 복사하세요.

하지만 제가 한 일은(저를 혼란스럽게 하고 문의하게 만드는 오류로 이어졌습니다) 노트북에서 키 쌍을 생성하고, 제가 생성한 개인 키를 노트북에서 첫 번째 VPS로 복사했습니다. 그런 다음 내 노트북에서 해당 개인 키를 삭제했습니다. 왜냐하면 제가 (잘못) 노트북에 더 이상 필요하지 않다고 생각했기 때문입니다. (실제로는 정확하게 생각했습니다) ssh-copy-id는 이를 사용하여 내 VPS에 로그인하지 않을 것입니다. 그래서 그렇게 했는데 ssh-copy-id -i blah.pub user@IPofFirstVPS 오류가 발생했습니다.

ssh-copy-id에는 키 쌍이 필요하므로 개인 키와 공개 키가 모두 필요합니다.

따라서 그렇게 하면 ssh-copy-id -i blah.pub user@host 지정된 공개 키 파일의 개인 키 형식이 필요합니다.

그렇게 하려면 ssh-copy-id blah파일 이름에 .pub를 쓰고 ssh-copy-id blah.pub. 따라서 끝에 .pub를 추가하는 것이 좋습니다. 즉, 개인 키 파일 이름 대신 공개 키 파일 이름을 지정하는 것이 좋습니다.

하지만 개인 키가 필요한 것은 "안전 확인"일 뿐입니다. 어떤 의미에서는 공개 키를 원격 Authorized_keys 파일에 추가하기 전에 수행하는 테스트일 뿐입니다. 이론적으로는 로그인 및 추가를 수행하기 위해 해당 검사를 수행할 필요조차 없습니다.

이는 미래에 ssh-copy-id를 수행한 시스템에서 지정한 공개 ID의 개인 키 형식을 사용하여 원격 호스트로 SSH를 수행할 수 있다는 것을 예상/추측하고 어쩌면 잘못 추측할 수도 있습니다. ssh-copy-id를 실행 중인 머신에 해당 개인 키가 필요합니다! (아마도 다른 컴퓨터에서 해당 개인 키를 사용하려는 의도로 키 쌍을 생성했다고 생각하지 않을 수도 있지만 해당 컴퓨터에서 많은 SSH 액세스 권한을 갖고 있기 때문에 현재 컴퓨터에서 ssh-copy-id를 사용하고 있을 뿐입니다. 다른 기계).

ssh-copy-id는 공개키 쌍의 개인키 형태로 로그인하지 않습니다.

ssh-copy-id에는 로그인에 사용할 개인 키를 지정할 수 있는 -o 옵션이 있습니다.

ssh-agent가 설정되어 있지 않으므로 ssh는 개인 키 ~/.ssh/id_rsa와 연결되며 이는 ssh-copy-id가 -i에 지정된 공개 키로 로그인하는 개인 키입니다. 그러나 -i에 지정된 공개 키의 개인 키 파일 이름이 존재하는지 확인합니다!

ssh-copy-id는 스크립트입니다. 예를 들어 #!/bin/sh스크립트에 익숙한 사람이 cat/vim으로 시작하여 확인하고 볼 수도 있습니다.

관련 정보