我对unix脚本编写起来相当新,现在我正在修改下面找到的现有FTP代码行。我需要它在访问特定的桥接服务器后自动插入密码。成功输入密码后,脚本将自动发送和确认文件($ acknFile)到该桥接服务器。
我阅读了不同的文章和论坛,其中很多建议使用 Expect 作为解决方案。但我被告知我们只需要使用我们拥有的任何模块,不幸的是,Expect不包括在内。非常感谢你们的任何意见,并会尝试了解它是如何运作的。
见下面的代码行:
if grep -q "$Filename" "$FilenameDirectory"
then
echo "File exists." >> $acknFile
scp - v $acknFile "$BridgeServer"
else
echo "File does not exists."
fi
答案 0 :(得分:3)
您使用的是使用ssh而不是ftp的scp。
scp想要ssh会话的密码。如果您希望scp不要求密码,您可以授权您的帐户使用无密码登录。为此,您在本地主机中执行以下操作。
步骤1:使用本地主机上的ssh-key-gen创建公钥和私钥
$ ssh-keygen
步骤2:使用ssh-copy-id
将公钥复制到远程主机$ ssh-copy-id user@remote-host
步骤3:检查登录到远程主机而不输入密码
$ ssh user@remote-host