다른 컴퓨터의 파일에 텍스트를 쓰는 방법

다른 컴퓨터의 파일에 텍스트를 쓰는 방법

machine1과 machine2라는 두 대의 컴퓨터가 있습니다.

machine1의 내용을 machine2의 파일에 쓰고 싶습니다.

동일한 컴퓨터에서 파일 sudo cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys에 기록된 콘텐츠를 실행할 수 있습니다 .~/.ssh/id_dsa.pub~/.ssh/authorized_keys

~/.ssh/id_dsa.pub하지만 machine1의 내용을 ~/.ssh/authorized_keysmachine2의 파일 에 쓰고 싶습니다 . ssh로 접속해서 할 수 있어요. 사용자 이름과 비밀번호를 사용하여 단일 명령으로 자동 모드로 hadoop을 설치했기 때문입니다.

scp전체 파일을 교체하고 싶지 않습니다 .

다른 컴퓨터의 사용자 이름/비밀번호를 제공하는 단일 명령으로 이 작업을 수행하려면 어떻게 해야 합니까?

답변1

다음을 수행할 수 있습니다.

cat ~/.ssh/id_dsa.pub | ssh machine2 'cat >> ~/.ssh/authorized_keys'

하지만 아마도 이 도구를 사용해야 할 것입니다 ssh-copy-id. 다음은 이 목적을 위해 특별히 제작된 도구입니다.

ssh-copy-id machine2

또는

ssh-copy-id id_dsa machine2

답변2

ssh 명령은 로컬 표준 입력을 캡처하고 외부 명령을 실행할 수도 있습니다. 이 두 가지 사실을 결합하면 다음이 가능해집니다.

ssh machine2 tee -a "~/.ssh/authorized_keys" < ~/.ssh/id_dsa.pub

ssh-copy-id이 프로세스를 자동화하는 "intent"라는 명령도 있습니다 . 더 많은 정보를 보실 수 있습니다 man ssh-copy-id.

관련 정보