scp 要求提供密钥密码

scp 要求提供密钥密码

以下命令从地形自动脚本:

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:

相关内容