首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sshpass:找不到命令错误

sshpass:找不到命令错误
EN

Stack Overflow用户
提问于 2016-07-01 01:34:02
回答 3查看 85.9K关注 0票数 16

我正在尝试自动化文件传输或FTP从一台服务器到另一台服务器。

代码语言:javascript
复制
#!/bin/bash
### In this model, the same filename is processed on each run.
### A timestamp is added to the result file and data file is copied to the archive or error folder with a timestamp after processing.

# Set current directory
cd `dirname "$0"`

# Set the environment variables
. ./Environment.sh $0

#######################################################################################################
# 
#######################################################################################################


FILE=/hcm/Inbound/file.csv

sshpass -p 'xyz' sftp -oBatchMode=no -b - -oStrictHostKeyChecking=no zys@192.abc.taleo.net <<_EOF_

cd /upload/

put $FILE

_EOF_

# Exit
exit $?

当我执行这个shell脚本时,我在putty中得到以下错误:

代码语言:javascript
复制
 -bash: sshpass: command not found

我通过ssh-keygen -t dsa和其他步骤尝试使用ssh无密码方法,但我无法访问第二个服务器的putty,因此我无法执行下一步。

热心的帮助

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-01 01:37:44

您需要在运行代码的客户端服务器上安装sshpass,该工具默认情况下不会安装在大多数Linux发行版上

如果您在Ubuntu中,请使用以下命令

apt-get install sshpass

在centOS/redhat上使用此安装epel

wget https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh epel-release-6-8.noarch.rpm

安装sshpass

yum --enablerepo=epel -y安装sshpass

谢谢

票数 43
EN

Stack Overflow用户

发布于 2016-07-01 02:11:53

NO!不要安装sshpass。这对你的工作来说是错误的工具。

它不是为您的用例编写的,如果您使用它,您的脚本的安全性将大大低于它的安全性。我应该知道我在说什么。这是我写的。

相反,使用调试信息运行您的服务器,并找出无法设置基于密钥的身份验证的原因。它比以各种可能的方式使用sshpass更可取。

票数 7
EN

Stack Overflow用户

发布于 2019-12-30 18:53:03

我为CentOS 7得到的一个解决方案是:

here下载

  1. sshpass

和rpm将会被下载。

  1. 将这个rpm传输到你的linux系统(你可以使用filezilla等)。
  2. 使用:filezilla安装Rpm

DONE

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

https://stackoverflow.com/questions/38129835

复制
相关文章

相似问题

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