2016-02-01 52 views
0

我對UNIX腳本相當陌生,現在我正在修改下面找到的現有FTP代碼行。我需要它在訪問特定網橋服務器後自動插入密碼。成功輸入密碼後,腳本會自動發送並確認文件($ acknFile)到該網橋服務器。UNIX - 使用SCP自動輸入密碼

我已閱讀過不同的文章和論壇,其中很多人建議使用期待作爲解決方案。但我被告知,我們只需要使用我們擁有的任何模塊,但不幸的是,Expect不包括在內。將高度讚賞你們的任何意見,並試圖瞭解它是如何工作的。

請參見下面的代碼行:

if grep -q "$Filename" "$FilenameDirectory" 
then 
echo "File exists." >> $acknFile 
scp - v $acknFile "$BridgeServer" 
else 
echo "File does not exists." 
fi 

回答

3

您正在使用的使用ssh不是FTP SCP。

scp需要ssh會話的密碼。如果您希望scp不要求輸入密碼,您可以授權您的帳戶使用無密碼登錄。爲此,您在本地主機中執行以下操作。

步驟1:本地主機上使用SSH密鑰根創建公鑰和私鑰

$ ssh-keygen 

第2步:使用ssh-copy-id命令複製公鑰到遠程主機

$ ssh-copy-id [email protected] 

3步:檢查登錄到遠程主機,而無需輸入密碼

$ ssh [email protected] 
+0

如果我授權我的帳戶使用密碼的登錄,將有是未來的任何問題,因爲就我所關心的問題而言,我不會是唯一使用此腳本的人。這將部署在不同的環境中。 –

+1

如果其他人將使用此腳本,則可以查看鏈接http://unix.stackexchange.com/questions/60544/allowing-ssh-but-only-to-execute-a-specific-script。如果將要使用您的腳本的用戶數量是固定的,您可以在鍵前提供特定的命令,否則使用有效的uid創建腳本,然後任何人都可以執行腳本。 – Shreesh