我想在bash腳本中運行sshpass命令,但它不工作。如何將sshpass命令放入bash腳本中?
如果我從終端運行相同的命令它工作正常,但它運行在一個bash腳本它不。
#! /bin/bash
sshpass -p 'password' ssh [email protected] command
我意識到安全問題,但現在並不重要。
有人可以幫忙嗎?我錯過了什麼。
感謝
我想在bash腳本中運行sshpass命令,但它不工作。如何將sshpass命令放入bash腳本中?
如果我從終端運行相同的命令它工作正常,但它運行在一個bash腳本它不。
#! /bin/bash
sshpass -p 'password' ssh [email protected] command
我意識到安全問題,但現在並不重要。
有人可以幫忙嗎?我錯過了什麼。
感謝
做which sshpass
在命令行來獲取到sshpass
的絕對路徑並將其替換到bash腳本中。
你也應該這樣做,你試圖運行command
。
問題可能是它沒有找到它。
好吧,現在它不起作用。讓我只是把我想要passa的命令放在這裏。我甚至試圖把所有的路徑: /usr/bin/sshpass -p'密碼'/ usr/bin/ssh [email protected] sudo/bin/sh /home/Projecto/AVstart_1.sh – rcsimoes
@ rcsimoes什麼是你得到的錯誤?在終端中運行確切的命令,併發布出錯信息。 –
在命令終端工作,但它並沒有在一個bash腳本,或在python使用os.system。我已經解決了這個問題,並在命令中添加了「StrictHostKeyChecking = no」。感謝這裏的所有幫助。我現在有另一個問題,但我想我應該問一個新的問題,因爲它與此無關 – rcsimoes
1 - 您可以編寫腳本sshpass's ssh
命令是這樣的:
#!/bin/bash
export SSHPASS=password
sshpass -e ssh -oBatchMode=no [email protected]
2 - 你可以腳本sshpass
的sftp
commandlike這樣的:
#!/bin/bash
export SSHPASS=password
sshpass -e sftp -oBatchMode=no -b - [email protected] << !
put someFile
get anotherFile
bye
!
嘗試「-o StrictHostKeyChecking = no」選項ssh(「 - o」是告訴ssh您將要使用選項的標誌)。這將接受來自ssh連接的任何傳入RSA密鑰,即使密鑰不在「已知主機」列表中。
sshpass -p 'password' ssh -o StrictHostKeyChecking=no [email protected] 'command'
我不理解接受的答案如何回答如何sshpass從bash腳本文件中給出後在服務器上運行的任何命令的實際問題。出於這個原因,我提供了一個答案。
您提供的腳本命令後,執行其他命令象下面這樣:
sshpass -p 'password' ssh [email protected] "ls; whois google.com;" #or whichever commands you would like to use, for multiple commands provide a semicolon ; after the command
在你的腳本:
#! /bin/bash
sshpass -p 'password' ssh [email protected] "ls; whois google.com;"
這爲我工作:
#!/bin/bash
#Variables
FILELOCAL=/var/www/folder/$(date +'%Y%m%d_%H-%M-%S').csv
SFTPHOSTNAME="myHost.com"
SFTPUSERNAME="myUser"
SFTPPASSWORD="myPass"
FOLDER="myFolderIfNeeded"
FILEREMOTE="fileNameRemote"
#SFTP CONNECTION
sshpass -p $SFTPPASSWORD sftp [email protected]$SFTPHOSTNAME << !
cd $FOLDER
get $FILEREMOTE $FILELOCAL
ls
bye
!
可能你必須安裝sshpass:
sudo apt-get install sshpass
這是什麼意思「不起作用」?你能解釋一下嗎?你可以在sshpass調用之後回顯$?? – Grzegorz
您是否正在運行cron作業的腳本?也許sshpass不在'$ PATH'中,因爲cron作業不運行'.profile'。 – Barmar