首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过SSH执行远程命令

通过SSH执行远程命令
EN

Unix & Linux用户
提问于 2018-05-11 12:47:01
回答 1查看 667关注 0票数 0
代码语言:javascript
复制
igor@IgorReinCloud ~/dbhandler $ ssh igorkorot@192.168.1.3:/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笔记本正在运行OSX10.8。直到最近,一切都很好,但后来GitHub从使用SSL1.0切换到SSL1.2或类似的东西。当然,试图从OSX执行远程操作的尝试正在失败。

但是,如果我尝试在Linux上执行这一操作,一切都会如愿以偿,因为Linux版本的Git/OpenSSL比较新,因此运行git拉/fetch/push/etc将会成功。

因此,我的最终目标是执行git拉,从本地机器(Linux)执行git,以更新位于远程计算机(OSX)上的存储库。

我希望现在清楚我想要达到的目标。

EN

回答 1

Unix & Linux用户

发布于 2018-05-11 12:50:33

<是一个操作符,用于将文件重定向为输入。git pull是一个命令,而不是一个文件。你可以这样做:

代码语言:javascript
复制
echo "git pull" | ssh igorkorot@192.168.1.3:/dbhandler/dbhandler

或者正确的方式:

代码语言:javascript
复制
ssh igorkorot@192.168.1.3:/dbhandler/dbhandler git pull

看看man ssh中可能的调用:

ssh (.)主机名

你在那里有一个可选的命令。

我想知道您的命令是否不需要额外的修复:

代码语言:javascript
复制
ssh igorkorot@192.168.1.3 bash -c "cd /dbhandler/dbhandler && git pull"

^我不认为在执行命令时您的路径应该在那里。有了bash -c "some-commands",您可以绕过这个问题。

编辑:

澄清之后,一个很好的解决方案似乎是在Linux机器上安装Mac的项目文件夹,并在那里使用git,同时在Mac上执行其他所有操作。您可以使用SSHFShttps://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-ssh进行操作。

我更喜欢的解决方案是升级Mac的git,以便它支持SSL1.2。如果Mac还没有更新,您可以自己编译并安装编译后的版本。

票数 6
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/443205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档