SSH를 통해 원격 명령 실행

SSH를 통해 원격 명령 실행
igor@IgorReinCloud ~/dbhandler $ ssh [email protected]:/dbhandler/dbhandler < git pull
bash: git: No such file or directory
igor@IgorReinCloud ~/dbhandler $ git pull
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 4 (delta 3), reused 4 (delta 3), pack-reused 0
Unpacking objects: 100% (4/4), done.
From https://github.com/oneeyeman1/dbhandler
   667ca95..4a93607  master     -> origin/master
Updating 667ca95..4a93607
Fast-forward
 libdbwindow/databasecanvas.cpp | 1 +
 1 file changed, 1 insertion(+)

git pull이것은 올바르게 수행하기 위해 내부적으로 일종의 스크립트를 만들어야 함을 의미합니까 ? 아니면 내가 뭔가 잘못하고 있는 걸까요?

[편집하다]

내가 달성하고 싶은 것은 다음과 같습니다.

저는 Linux 박스에서 OSX 노트북(192.168.1.3) 중 하나에 연결하려고 합니다. 이 Mac 노트북은 OSX 10.8을 실행하고 있습니다. 최근까지 모든 것이 잘 작동했지만 GitHub는 SSL 1.0을 SSL 1.2 또는 이와 유사한 것으로 전환했습니다. 물론 이제 OSX에서 원격 작업을 수행하려는 시도는 실패합니다.

그러나 Linux에서 이 작업을 시도하면 Git/OpenSSL의 Linux 버전이 더 최신이므로 모든 것이 예상대로 작동하므로 git pull/fetch/push/etc를 실행하면 성공합니다.

따라서 나의 궁극적인 목표는 로컬 컴퓨터(Linux)에서 git pull을 수행하여 원격 컴퓨터(OSX)에 있는 저장소를 업데이트하는 것입니다.

이제 내가 달성하고 싶은 것이 무엇인지 분명해지기를 바랍니다.

[/편집하다]

답변1

<리디렉션 연산자입니다문서입력으로. git pull파일이 아니라 명령입니다. 다음을 수행할 수 있습니다.

echo "git pull" | ssh [email protected]:/dbhandler/dbhandler

또는 올바른 방법:

ssh [email protected]:/dbhandler/dbhandler git pull

가능한 통화를 살펴보세요 man ssh.

ssh (...) [사용자@]호스트 이름[명령]

거기에는 선택적 명령이 있습니다.

귀하의 명령에 추가 수정이 필요하지 않은지 궁금합니다.

ssh [email protected] bash -c "cd /dbhandler/dbhandler && git pull"

^ 명령을 실행할 때 경로가 거기에 있어야 한다고 생각하지 않습니다. 이를 통해 bash -c "some-commands"이 문제를 피할 수 있습니다.

편집하다:

git약간의 설명을 들은 후에 Mac의 프로젝트 폴더를 Linux 시스템에 마운트하고 Mac에서 다른 모든 작업을 수행하는 동안 이를 사용하는 것이 좋은 해결책인 것 같습니다 . 다음 방법을 사용하여 이 작업을 수행할 수 있습니다 SSHFS.https://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-ssh

내가 선호하는 솔루션은 SSL 1.2를 지원하도록 Mac의 git을 업그레이드하는 것입니다. Mac이 아직 업데이트되지 않은 경우 컴파일된 버전을 직접 컴파일하고 설치할 수 있습니다.

관련 정보