我们有一个场景,需要在 Windows 机器上使用 ssh-keygen 生成 ssh 密钥并将其复制到 Linux 实例:
echo -e 'y\n' | ssh-keygen -t rsa -f /tmp/temp -N '' >/dev/null 2>&1
aws --profile dev --region us-east-1 ec2-instance-connect send-ssh-public-key \
--instance-id i-x123456 \
--availability-zone us-east-1a \
--instance-os-user ec2-user \
--profile dev \
--region us-east-1 \
--ssh-public-key file:///tmp/temp.pub
问题是在 Windows 上创建的 pem 模板与 Linux 模板不匹配,因此当尝试将其用于 ssh(使用 aws 会话管理器)时:
ssh -i /tmp/temp \
-Nf -M \
-L 3306:test-rds.xxxxxxxxxxx.us-east-1.rds.amazonaws.com:3306 \
-o "UserKnownHostsFile=/dev/null" \
-o "StrictHostKeyChecking=no" \
-o ProxyCommand="aws ssm start-session --target %h --document AWS-StartSSHSession --parameters portNumber=%p --profile dev --region us-east-1" \
ec2-user@i-x123456
失败原因:命令行:第 0 行:错误的配置选项:\342\200\234userknownhostsfile
有什么方法可以在 Windows 上生成 pem 并将其复制到 Linux 机器上吗?谢谢!
答案1
你的密钥没有任何问题;错误消息表明你使用了错误的引号UserKnownHostsFile
– 你使用的不是常规的"
ASCII 引号,而是shell 无法识别的花引号“
(大概是)。”