在 windows 机器上使用 ssh-keygen,在 linux 机器上使用它

在 windows 机器上使用 ssh-keygen,在 linux 机器上使用它

我们有一个场景,需要在 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 无法识别的花引号(大概是)。

相关内容