当您使用pscp将文件发送到单台计算机时不会有什么大不了,因为您将得到一次rsa指纹提示,而不会再次发生。但如果你想连接到200台机器,你绝对不想输入“是”200次....使用pscp自动接受rsa指纹
我在Windows机器上使用pscp,我真的不关心指纹,我只想接受它。我正在使用亚马逊EC2,每次重新启动机器时都会更改指纹....
如果有一种方法可以避免使用pscp或其他工具,请告诉我!
谢谢!
当您使用pscp将文件发送到单台计算机时不会有什么大不了,因为您将得到一次rsa指纹提示,而不会再次发生。但如果你想连接到200台机器,你绝对不想输入“是”200次....使用pscp自动接受rsa指纹
我在Windows机器上使用pscp,我真的不关心指纹,我只想接受它。我正在使用亚马逊EC2,每次重新启动机器时都会更改指纹....
如果有一种方法可以避免使用pscp或其他工具,请告诉我!
谢谢!
如果您只需重新启动或停止/启动实例,则主机ssh密钥指纹不应更改。如果是这样,那么实例/ AMI配置不正确或其他(恶意?)正在进行。
良好的EC2 AMI设置为在第一次启动时创建随机主机ssh密钥。最流行的AMI将输出指纹到控制台输出。为了安全起见,您应该通过EC2 API(命令行工具或控制台)请求实例控制台输出,并将其与ssh提示符中的指纹进行比较。
通过说你“不关心指纹”,你说你不关心加密自己和实例之间的流量,并且你和实例之间的任何人都可以看到这样的通信。中间人甚至有可能接管ssh会话并获得控制实例的权限。
使用Linux上的ssh,您可以使用命令行或配置文件选项关闭ssh指纹检查。我不愿意公布如何做到这一点,因为它不被推荐,并严重降低了连接的安全性。
更好的选择是让您的实例将自己的主机ssh密钥设置为您知道的秘密值。您可以将主机ssh密钥的公共端保存在已知的主机文件中。这样,您的流量就会加密并且安全无虞,并且在连接到您自己的机器时,您不必连续回答关于指纹的提示。
我不完全同意最后一个答案。第一次接受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
}
希望对您有所帮助;)
它不适用于pscp在Windows上,这是一个真正的耻辱! TBH我已经验证了指纹,并希望在命令行中指定它,不一定忽略它,但请说出接受这一个...为什么我不能做这个基本的事情? – Dan
错误:首次接受SSH密钥时(例如从EC2控制台输出),您确实知道远程主机,并且自动接受密钥确实会产生很大的安全差异。 –
@Dan _It在Windows上不适用于pscp,这是一种真正的耻辱!_真正的耻辱是使用Windows。 – user454322
请参阅Putty won't cache the keys to access a server when run script in hudson
在Windows上,您可以在您的命令前面使用前缀echo y |
,这将使您盲目地每次都接受任何主机密钥。但是,更安全的解决方案是首次交互式运行,或生成可在任何客户端计算机上运行的.reg文件。
我在它创建了以下命令的期望文件:
产卵的ssh -i ec2Key.pem Ubuntu的@ ec2IpAddress 期望“?你确定要继续连接(是/否)” {发送“是\ n”} 交互
我可以在没有禁用rsa指纹的情况下进入ec2控制台。我的机器已添加到此ec2的已知主机中。
我希望它有帮助。
可能的重复http://stackoverflow.com/questions/13598996/putty-wont-cache-the-keys-to-access-a-server-when-run-script-in-hudson – Clay