SSH를 통해 두 대의 컴퓨터를 연결하는 방법에 대한 꽤 많은 양의 튜토리얼을 찾았지만, 제가 생각하는 요점을 얻지 못했습니다. (예를 들어 시도했습니다.이 하나또는이 하나)
내가 ipv4 xxx.xxx.x.xx를 사용하는 userA이고 ipv4 yyy.yyy.y.yy를 사용하여 (다른 나라에 있는) 내 친구 userB와 SSH 연결을 갖고 싶다고 가정해 보겠습니다.
그래서 SSH 키를 생성하고 멋진 ./ssh/id_rsa 및 ./ssh/id_rsa.pub를 갖고 있으며 이제 이를 내 친구의 컴퓨터에 복사해야 할까요?
그러나 의심할 수 있듯이,
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
작동하지 않습니다(아직 제한되지 않았는데 어떻게 그럴 수 있습니까?)
userB는 이 파일을 자신의 .ssh 파일에 수동으로 복사해야 합니까?
그리고 내 컴퓨터에서
직접 작동할까요? (매우 비현실적이라고 생각합니다...)
너무 멍청해서 미안하지만 튜토리얼에서 사람들은 같은 컴퓨터를 다루고 있는 것 같습니다...
답변1
그래서 SSH 키를 생성하고 멋진 ./ssh/id_rsa 및 ./ssh/id_rsa.pub를 갖고 있으며 이제 이를 내 친구의 컴퓨터에 복사해야 할까요?
예, 특히 파일(공개 키)을 원격 시스템의 파일에 복사해야 합니다 .~/.ssh/id_rsa.pub
~/.ssh/authorized_keys
(그렇지만 실제로는너 스스로친구의 "userB" 계정을 공유하는 대신 대상 컴퓨터의 사용자 계정.)
[ssh-copy-id]가 작동하지 않습니다(아직 제한되지 않았는데 어떻게 그럴 수 있습니까?)
일반적으로 다음과 같이 작동합니다.비밀번호를 입력하다원격 시스템에 로그인합니다. (SSH는 로컬 로그인과 동일한 "시스템" 계정 및 비밀번호를 사용합니다.)
여기서 SSH의 장점은 클라이언트가 여러 로그인 방법 중에서 선택할 수 있다는 것입니다. 실제로는 그렇지 않습니다.오직키쌍 기반. (웹사이트에서 비밀번호로 로그인, Google로 로그인, USB 토큰으로 로그인 등을 허용하는 방식과 유사합니다.)
물론, 원격 시스템에 이미 비밀번호 기반 로그인이 있는 경우장애가 있는(요즘에는 어느 정도 필수가 되었습니다) 실제로 ssh-copy-id는 아무 것도 없이 작동할 수 없으며 공개 키를 다른 방법으로 서버의 "authorized_keys" 파일에 복사해야 합니다.
다행히 공개 키는 긴 텍스트이므로 이메일이나 Discord 등을 통해 붙여넣을 수 있습니다. (RSA 키 ssh-keygen -t ed25519
는 길지만많이짧은 id_ed25519.pub는 종이에 짧게 적을 수도 있습니다.)
(이러한 상황에서도 ssh-copy-id는 여전히 남아 있을 수 있습니다.기술적으로이미 하나의 키 쌍이 작동하고 있고 이를 사용하여 다른 키 쌍을 등록하려는 경우 유용합니다. 세 번째 대안은 주로 기업/애호가 환경에서 발견되는 Kerberos 기반 로그인입니다.)
그러면 내 컴퓨터에서 직접 작동하나요? (매우 비현실적이라고 생각합니다...)
ssh [email protected]
특히 SSH 부분은 작동합니다. 그렇습니다.
그러나 SSH는 마술처럼 NAT를 통과하지 않으며 "포트 전달"을 자동으로 설정하지 않으므로 친구의 집 컴퓨터에 액세스하는 데 필요한 경우 별도로 수행해야 합니다. (SSH는 TCP 포트 22를 사용합니다.) 마찬가지로 방화벽이 있는 경우 SSH를 허용하는 규칙이 필요합니다.
그래서저것ssh y.y.y.y
작동하기 전에 처리해야합니다 .
(대부분의 SSH 튜토리얼에서는 홈 NAT가 매우 일반적이고 SSH 설정의 일부가 아니기 때문에 다루지 않습니다. 누군가가 IPv4를 통해 홈 네트워크에 대한 연결을 허용하려는 경우 포트 전달이 무엇인지 이미 알고 있다고 가정합니다. 그리고 어떻게 구성해야 하는지 – SSH, Minecraft, BitTorrent 등에서 수행하는 것 사이에는 차이가 없습니다.
또한 많은 SSH 튜토리얼은 자체 공개 IPv4 주소가 있는 VPS에 연결하려는 개발자와 일반적으로 사람들을 대상으로 합니다. 친구의 PC에 연결하려는 것과는 조금 다릅니다.)
답변2
공개 키 인증이 작동하려면 대상 사용자에 대해 공개 키( id_rsa.pub
)를 추가해야 합니다 . ~/.ssh/authorized_keys
그것을 얻는 방법은 SSH의 업무와 전혀 관련이 없습니다. 스스로 알아내야 합니다. 무결성을 보장하는 한 원하는 모든 매체를 사용할 수 있습니다(즉, 수신자는 자신이 받은 내용이 귀하가 보낸 내용임을 확인할 수 있습니다). 귀하의 정보이기 때문에 비밀로 할 필요는 없습니다.공공의열쇠. 개인 키( id_rsa
)는 컴퓨터에 유지됩니다.
그렇다면 요점은 무엇입니까 ssh-copy-id
? 두 가지 사용 사례가 있습니다.
비밀번호 인증이 활성화되어 있으며 공개 키 인증을 활성화하려고 합니다. 이 경우 호스트 B에 연결하려면 비밀번호를 입력해야 하며
ssh-copy-id
공개 키가 에 추가됩니다authorized_hosts
.공개 키 인증이 이미 설정되어 있지만 더 강력하거나 다른 암호화를 사용하는 등 다른 키를 추가하려고 합니다. 특히 귀하 또는 귀하의 현재 호스트에 속하지 않은 키를 추가하고 싶을 수도 있습니다. 이 경우 옵션을 사용하여 키 파일을 지정하고 싶을 것입니다
-i
. (기본값은 에서 제공한 모든 키를 추가하거나 키가 없는 경우 추가하는 것입니다ssh-add -L
.id_rsa.pub
)
이미 비밀번호 인증이 설정되어 있는데 공개 키 인증을 사용하는 이유는 무엇입니까? 추측이 불가능하고 사용자 상호작용이 필요하지 않기 때문입니다.