在scp命令时传递yes参数

时间:2015-03-31 16:52:25

标签: linux bash scripting scp

当我只运行这些命令时,我遇到了一个问题。

远程服务器希望传递yes以在RSA文件中添加密钥,因为第一次与scp建立了连接。

命令在下面给出

#!/bin/bash

scp  -P58222 root@IP:/root/K /N
/usr/bin/expect -c 'expect "\n" { expect "Are you sure you want to continue connecting (yes/no)?" }'
send "yes\r"
expect "$ "
send "exit\r"

实际上我必须在询问

时在我的脚本中传递yes

无法建立主机'IP地址(IP地址)'的真实性。

RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? 
  

您确定要继续连接(是/否)吗?

我该怎样摆脱这个问题?

scp -o  StrictHostKeyChecking=no

它还在问。

3 个答案:

答案 0 :(得分:12)

scp -o StrictHostKeyChecking=no root@IP:/root/K 

显然,这不是一个非常安全的解决方案。但是,如果您不关心中间人,那就可以用于一次性拍摄。

答案 1 :(得分:5)

对我而言,这有效:

 yes | scp -r /opt/MyFiles root@<MyNewServerIP>:/opt/MyFiles

的问候。 =)

答案 2 :(得分:0)

可能最好的方法是在scp命令之前使用以下命令:

async function getData() { myArray = await myFunction(); console.log(myArray); return myArray; }

这会将SSH_HOST添加到您的已知主机,并且ssh-keyscan -H ${SSH_HOST} >> ~/.ssh/known_hosts不会抱怨。