首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过ssh远程运行wget命令,但连接超时

问通过ssh远程运行wget命令,但连接超时
EN

Stack Overflow用户
提问于 2014-05-19 08:16:27
回答 2查看 3.7K关注 0票数 1

我已经为这事挣扎了两天了。

我有两个linux机器A和B,并试图从A远程运行以下命令(就像在本地B上所做的那样):

sshpass -p 'somePassword‘ssh用户名@machineB "wget http://someUrl.com/someFile.zip“

someFile.zip应该下载并保持在B上,但是我得到了连接超时。在macnine上直接运行此命令可以正常工作。我想SSH有一些问题。

此脚本是TeamCity连续集成所必需的。

附注:sshpass只是一个通过ssh运行命令的实用工具,而无需通过指定密码进行用户交互。

有什么问题,如何解决?谢谢。

更新:对于非交互式会话,应该在~/..bashrc文件中指定代理设置。原因是代理设置在/etc/profile中,它只适用于交互式会话。

EN

回答 2

Stack Overflow用户

发布于 2014-05-19 08:38:43

我没有尝试sshpass,但我的猜测是连接超时是A连接到B,而不是B发出HTTP请求。我建议用SSH键代替,我很肯定这对你有用。

若要设置ssh键,请在A上运行以下命令:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ''

以上将创建一个长度为4096位的SSH密钥区,没有密码短语(-N '')。它在~/.ssh中写入两个文件;将公钥复制到B:

scp ~/.ssh/id_rsa.pub B:

在服务器B上这样做:

mkdir ~/.ssh chmod 0700 ~/.ssh cat id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys

在启用了RedHat的SELinux系统上,可能需要运行以下命令,以便系统能够使用授权的密钥文件接受:

restorecon -R -v ~/.ssh

以上允许包含authorized_keys文件中列出的任何公钥的私钥的服务器进入机器。

一旦你有了这个设置,你应该能够在没有密码的情况下从A到B进行ssh。

以下命令甚至通过cronjob在我的系统上工作:

ssh -i ~/.ssh/id_rsa foobar.local 'curl -O https://www.google.com/logos/doodles/2014/rubiks-cube-5658880499515392-res.png'

票数 2
EN

Stack Overflow用户

发布于 2022-04-18 19:06:27

我也遇到过同样的问题,并尝试了各种方法来解决它。

当我打开DHCP的时候超时已经消失了。

我用VMWare。因此,解决办法如下:

Edit -> Virtual Network Editor ->复选框Use local DHCP service to distribute IP address to VMs

然后瞧。问题解决了。

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

https://stackoverflow.com/questions/23732829

复制
相关文章

相似问题

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