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)の1つに接続しようとしています。この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で他のすべての作業を実行している間にそれを使用するのが良い解決策のようです。次の方法を使用してこれを実行できますSSHFShttps://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-ssh

私が好む解決策は、SSL 1.2をサポートするようにMacのgitをアップグレードすることです。 Macがまだ更新されていない場合は、コンパイルされたバージョンを直接コンパイルしてインストールできます。

おすすめ記事