UNIX - 使用SCP自动输入密码

时间:2016-02-01 12:34:49

标签: bash unix passwords scp

我对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

1 个答案:

答案 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