在CentOS 6.3版(最终版)系统上工作.并尝试使用sshpass实用程序ssh另一台机器
sshpass -p 'password' ssh user@host
Run Code Online (Sandbox Code Playgroud)
但它给我的错误就像
sshpass: Failed to run command: No such file or directory
Run Code Online (Sandbox Code Playgroud)
所以从错误我认为sshpass可能不是安装所以尝试安装它yum install sshpass并得到以下日志
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirror.leapswitch.com
* epel: epel.mirror.net.in
* extras: mirror.leapswitch.com
* nux-libreoffice.org-rpms: mirror.li.nux.ro
* updates: mirror.leapswitch.com
Setting up Install Process
Package sshpass-1.05-1.el6.i686 already installed and latest version
Nothing to do
Run Code Online (Sandbox Code Playgroud)
从上面看似sshpass已经安装了.所以它为什么不工作?
我想从Windows运行sshpass命令到远程linux服务器。我用这个命令:
sshpass -p ‘password’ ssh ldap.nextstep4it.com -l root -o StrictHostKeyChecking=no
Run Code Online (Sandbox Code Playgroud)
但是我的cmd返回以下错误声明:
无法将“ sshpass”识别为内部或外部命令,可操作程序或批处理文件。
我认为这是因为Windows没有linux那样的sshpass软件包。从Linux起,我必须安装sshpass软件包才能运行此命令。
有没有人知道如何通过Windows命令行运行sshpass命令?
我不想一次又一次地输入密码,因此想将其提供给命令本身。我该怎么做?
目前,我正在这样做
sshpass -p server_password port_number ssh-copy-id user@IP
Run Code Online (Sandbox Code Playgroud)
它说,
sshpass: Failed to run command: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我哪里错了?我找到了网络,它也得到了同样的结果。
我在 Kubernetes 中有一个alpine映像,在其中我尝试使用 Deploy Key(带密码)推送到 Git。
现在我的command样子:
command: ["/bin/sh", "-c", "GIT_SSH_COMMAND=\"sshpass -p mygreatpassphrase ssh -vvv\" git -C /workspace push --mirror git@github.com:foo/bar.git"]
Run Code Online (Sandbox Code Playgroud)
结果是:
<snip>
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug1: Will attempt key: /.ssh/id_rsa
debug1: Will attempt key: /.ssh/id_dsa
debug1: Will attempt key: /.ssh/id_ecdsa
debug1: …Run Code Online (Sandbox Code Playgroud) 如果我想使用密码,我可以这样做:
`sshpass -f <(printf '%s\n' your_password) ssh user@hostname`
Run Code Online (Sandbox Code Playgroud)
但 sshpass 似乎不适用于公钥。我尝试了以下命令但失败了:
`sshpass -f <(printf '%s\n' your_passphrase) ssh -o PreferredAuthentications=publickey user@hostname`
Run Code Online (Sandbox Code Playgroud)
有什么好的办法吗?
我想编写一个脚本,在其中需要从不同的计算机获取文件的内容192.168.0.2而不输入密码,因此我使用sshpass以下命令:
sshpass -p "password" ssh -o StrictHostKeyChecking=no user@192.168.0.2 " ls /root/path/of/file"
Run Code Online (Sandbox Code Playgroud)
输出 :
ls: cannot access '/root/path/of/file': Permission denied
Run Code Online (Sandbox Code Playgroud)
我明白了,因为我没有以root用户身份登录。所以我尝试了:
sshpass -p "password" ssh -o StrictHostKeyChecking=no user@192.168.0.2 "sudo ls /root/path/of/file"
Run Code Online (Sandbox Code Playgroud)
输出 :
sudo: no tty present and no askpass program specified
Run Code Online (Sandbox Code Playgroud)
我应该怎么办?
使用 sshpass 的安全性如何?
我读到很多讨论,认为 sshpass 不安全,因为它将密码存储在日志文件和历史文件中。但如果我使用下面的方式,会安全吗?
pass=''
if [ "$pass" == "" ];then
read -s -p "Enter Your Password: " pass
fi
sshpass -p "$pass" ......
Run Code Online (Sandbox Code Playgroud) 我有一个带有以下行的脚本
sshpass -p 'password' ssh user@server "touch /tmp/test"
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时,这是有效的,但如果我将脚本放入 cron 中,它就不起作用。有任何想法吗 ?
我有red-hat 5.4可以执行的远程机器
须藤lvdisplay
使用 xyz 用户在本地执行命令,但在使用 xyz 用户通过远程执行相同的命令时sshpass,我得到的结果为
须藤:lvdisplay:找不到命令。
我正在执行的命令就像
sshpass -p '密码' ssh -p 22 -o StrictHostKeyChecking=no xyz@hostname sudo lvdisplay
.
请帮我解决问题。
在我的linux服务器上,运行以下命令:
sshpass -p 'password' rsync -avz /source/folder/ root@192.168.x.x:/dest/folder
Run Code Online (Sandbox Code Playgroud)
当我运行不带sshpass的命令时,它将为我提供有关主机和密码真实性的提示。
我需要一些等效于“ -o StrictHostKeyChecking = no”(用于ssh)的工具,它可以使我在没有任何提示或错误的情况下运行它。
我从谷歌搜索中看到的所有内容都是关于ssh引发错误而不是rsync的。
我正在尝试使用命令行执行这个 shell
host="192.168.X.XXX"
user="USERNAME"
pass="MYPASS"
sshpass -p "$pass" scp -o StrictHostKeyChecking=no /home/MYPATH/File.import "$user@$host:/"home/MYPATH/
Run Code Online (Sandbox Code Playgroud)
将文件从本地服务器复制到远程服务器。远程服务器是远程服务器的副本,但是当我尝试执行此 shell 时,出现以下错误:
**PERMISSION DENIED, PLEASE TRY AGAIN**
Run Code Online (Sandbox Code Playgroud)
我不明白为什么如果我尝试在命令行中执行此命令有效。
USERNAME@MYSERVER:~$ sshpass -p 'MYPASS' scp -o StrictHostKeyChecking=no /home/MYPATH/File.import USERNAME@192.168.X.XXX:/home/MYPATH/
Run Code Online (Sandbox Code Playgroud)
有人有解决办法吗??