2011-10-03 132 views
1

当您使用pscp将文件发送到单台计算机时不会有什么大不了,因为您将得到一次rsa指纹提示,而不会再次发生。但如果你想连接到200台机器,你绝对不想输入“是”200次....使用pscp自动接受rsa指纹

我在Windows机器上使用pscp,我真的不关心指纹,我只想接受它。我正在使用亚马逊EC2,每次重新启动机器时都会更改指纹....

如果有一种方法可以避免使用pscp或其他工具,请告诉我!

谢谢!

+0

可能的重复http://stackoverflow.com/questions/13598996/putty-wont-cache-the-keys-to-access-a-server-when-run-script-in-hudson – Clay

回答

1

如果您只需重新启动或停止/启动实例,则主机ssh密钥指纹不应更改。如果是这样,那么实例/ AMI配置不正确或其他(恶意?)正在进行。

良好的EC2 AMI设置为在第一次启动时创建随机主机ssh密钥。最流行的AMI将输出指纹到控制台输出。为了安全起见,您应该通过EC2 API(命令行工具或控制台)请求实例控制台输出,并将其与ssh提示符中的指纹进行比较。

通过说你“不关心指纹”,你说你不关心加密自己和实例之间的流量,并且你和实例之间的任何人都可以看到这样的通信。中间人甚至有可能接管ssh会话并获得控制实例的权限。

使用Linux上的ssh,您可以使用命令行或配置文件选项关闭ssh指纹检查。我不愿意公布如何做到这一点,因为它不被推荐,并严重降低了连接的安全性。

更好的选择是让您的实例将自己的主机ssh密钥设置为您知道的秘密值。您可以将主机ssh密钥的公共端保存在已知的主机文件中。这样,您的流量就会加密并且安全无虞,并且在连接到您自己的机器时,您不必连续回答关于指纹的提示。

4

我不完全同意最后一个答案。第一次接受SSH密钥时,您对远程主机一无所知,所以自动接受它并没有什么区别。

我会做什么是自动接受第一次连接到主机的密钥。我已经阅读过类似yes yes | ssh [email protected]这样的作品,但它没有,因为SSH不会从stdin读取,而是从终端读取。

什么工作是传递,您连接第一次,下面的SSH选项(它同时适用于SCP和SSH:

scp -oStrictHostKeyChecking=no [email protected]:file1 [email protected]:file2 

此命令会增加你运行它的关键在第一时间,但是如果像Eric所说的那样,一旦你接受了密钥就这么做是危险的(如果我是你,那么我会将它添加到一个脚本中,该脚本在~/.ssh/known_hosts中检查过,如果该主机已经有一行在这种情况下,我不会添加该选项,另一方面,如果没有行,我会这么做;)。

如果你正在处理的known_hosts的加密版本,尝试用

ssh-keygen -F hostname 

下面是我实际使用的东西(函数接受以下参数:用户,主机,SOURCE_FILE)

deployToServer() { 
    echo "Deployng to [email protected]$2 from $3" 
    if [ -z "`cat ~/.ssh/known_hosts | grep $2`" ] && [ -z "`ssh-keygen -F $2`" ] 
    then 
     echo 'Auto accepting SSH key' 
     scp -oStrictHostKeyChecking=no $3* [email protected]$2:. 
    else 
     scp $3* [email protected]$2:. 
    fi 
} 

希望对您有所帮助;)

+0

它不适用于pscp在Windows上,这是一个真正的耻辱! TBH我已经验证了指纹,并希望在命令行中指定它,不一定忽略它,但请说出接受这一个...为什么我不能做这个基本的事情? – Dan

+0

错误:首次接受SSH密钥时(例如从EC2控制台输出),您确实知道远程主机,并且自动接受密钥确实会产生很大的安全差异。 –

+0

@Dan _It在Windows上不适用于pscp,这是一种真正的耻辱!_真正的耻辱是使用Windows。 – user454322

0

我在它创建了以下命令的期望文件:

产卵的ssh -i ec2Key.pem Ubuntu的@ ec2IpAddress 期望“?你确定要继续连接(是/否)” {发送“是\ n”} 交互

我可以在没有禁用rsa指纹的情况下进入ec2控制台。我的机器已添加到此ec2的已知主机中。

我希望它有帮助。