Amazon ec2 使用pscp自动接受rsa指纹

Amazon ec2 使用pscp自动接受rsa指纹,amazon-ec2,rsa,fingerprint,Amazon Ec2,Rsa,Fingerprint,当您使用pscp将文件发送到一台机器时,这并不是什么大问题,因为您将得到rsa指纹提示一次,以后再也不会得到。但是如果你想连接到200台机器,你肯定不想输入200次“是” 我在Windows机器上使用pscp,我真的不在乎指纹,我只想接受它。我正在使用AmazonEC2,每次重启机器时,指纹都会发生变化 如果有办法避免使用pscp或其他工具,请让我知道 谢谢 如果只是重新启动或停止/启动实例,则主机ssh密钥指纹不应更改。如果是,则实例/AMI配置不正确,或者正在发生其他事情(恶意?) 良好的E

当您使用pscp将文件发送到一台机器时,这并不是什么大问题,因为您将得到rsa指纹提示一次,以后再也不会得到。但是如果你想连接到200台机器,你肯定不想输入200次“是”

我在Windows机器上使用pscp,我真的不在乎指纹,我只想接受它。我正在使用AmazonEC2,每次重启机器时,指纹都会发生变化

如果有办法避免使用pscp或其他工具,请让我知道


谢谢

如果只是重新启动或停止/启动实例,则主机ssh密钥指纹不应更改。如果是,则实例/AMI配置不正确,或者正在发生其他事情(恶意?)

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

说你“不在乎指纹”就是说你不在乎加密你和实例之间的流量,你和实例之间的任何人都可以看到这种通信。中间人甚至可以接管ssh会话并获得控制实例的访问权

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


更好的选择是让您的实例将自己的主机ssh密钥设置为您知道的秘密值。您可以将主机ssh密钥的公共端保存在已知主机文件中。通过这种方式,您的通信是加密和安全的,并且在连接到您自己的计算机时,您不必不断回答有关指纹的提示。

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

我要做的是在您第一次连接到主机时自动接受密钥。我读过类似于
yes-yes | ssh的文章user@host
可以工作,但不能,因为SSH不是从stdin读取,而是从终端读取

工作原理是在第一次连接时传递以下ssh选项(它适用于scp和ssh:

scp -oStrictHostKeyChecking=no user@host1:file1 user@host2:file2
这个命令会在你第一次运行时添加密钥,但是,如埃里克所说,一旦你接受了这个键,就很危险了(中间的人是不酷的)。如果我是你,我会将它添加到签入
~/.ssh/known_hosts
的脚本中,如果该主机已经有一行,那么我不会添加该选项。另一方面,如果没有行,我会这样做;)

如果您正在处理已知_主机的加密版本,请尝试使用

ssh-keygen -F hostname
下面是我实际使用的东西(函数接收以下参数:user、host、source\u文件)

希望这有帮助;)


在Windows上,您可以在命令前面使用前缀
echo y |
,该命令每次都将盲目地接受任何主机密钥。但是,更安全的解决方案是第一次以交互方式运行,或者生成一个可在任何客户端计算机上运行的.reg文件。

我创建了一个expect文件,其中包含以下命令:

spawn ssh-i ec2Key.pemubuntu@ec2IpAddress 应为“是否确实要继续连接(是/否)”{send“yes\n”} 互动

我能够通过ssh连接到ec2控制台,而无需禁用rsa指纹。我的机器已添加到此ec2的已知主机


我希望它能有所帮助。

它在Windows上与pscp不兼容,这真是太可惜了!TBH我已经验证了指纹,想在命令行上指定它,不一定忽略它,但说接受这个。。。为什么我不能做这个基本的事情?错误:您在第一次接受SSH密钥(例如,从EC2控制台输出)时就知道远程主机,自动接受密钥确实会带来很大的安全性差异。@Dan Windows上的pscp不起作用,这真是太遗憾了!真正的耻辱是使用Windows。事实上,我自己将其添加到代码中,所以我很高兴最终可能会重复
deployToServer() {
    echo "Deployng to $1@$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* $1@$2:.
    else
        scp $3* $1@$2:.
    fi
}