以下命令从地形自动脚本:
sudo chmod 400 /home/ec2-user/key
sudo scp -o StrictHostKeyChecking=no -o NoHostAuthenticationForLocalhost=yes -o UserKnownHostsFile=/dev/null -i key ec2-user@${aws_instance.master.private_ip}:/home/ec2-user/token
每次我都会得到:
输入密钥“key”的密码:
但是密钥根本没有密码。我该如何避免这个提示?
我运行这个亚马逊 Linux 2 AMI 2.0.20181008 x86_64 HVM gp2
答案1
我得到 Enter passphrase for key 'key': ,密钥根本没有密码
这表明密钥文件已损坏,或者其内容不是程序ssh
接受的格式。某些版本的 ssh 实用程序在无法理解密钥文件的内容时会要求输入密码:
$ dd if=/dev/urandom of=key bs=1500 count=1
1+0 records in
1+0 records out
1500 bytes transferred in 0.000190 secs (7893922 bytes/sec)
$ chmod 600 key
$ ssh -i key foo@localhost
Enter passphrase for key 'key':
较新版本ssh
可以区分受密码保护的密钥和充满垃圾的文件:
$ ssh -V
OpenSSH_7.6p1, LibreSSL 2.6.2
$ dd if=/dev/random of=key bs=1500 count=1
1+0 records in
1+0 records out
1500 bytes transferred in 0.000149 secs (10082462 bytes/sec)
$ chmod 600 key
$ ssh -i key localhost
Load key "key": invalid format
Password: