Ubuntu 22.04에서 SSH를 통해 호스트에 연결하지 못했습니다.

방금 Ubuntu 22.04로 업그레이드했는데 호스트에 ssh를 시도하거나 실행할 때ansible 또는 ansible 프로비저너를 실행할 때packer 이미지를 빌드할 때 갑자기 오류가 발생하는 경우 이 기능이 유용할 것입니다. 너.

제 경우에는 패커와 ansible 프로비저너를 통해 AWS EC2 이미지를 빌드하려고 했는데 다음 오류가 발생했습니다.

amazon-ebs.aws: Failed to connect to the host via ssh: Unable to negotiate with 127.0.0.1 port
amazon-ebs.aws: 40015: no matching host key type found. Their offer: ssh-rsa


SSH를 통해 Ubuntu 22.04 호스트의 호스트에 연결할 수 없다는 것이 문제라면 look it up 같은 배에 많은 사람들이 있는 것입니다.

제안된 솔루션은 이 스니펫을 /etc/ssh/ssh_config 또는 ~/.ssh/config에 추가하는 것입니다.

PubkeyAcceptedKeyTypes +ssh-rsa


또는 일부 특정 호스트의 경우:

Host host.example.com
    PubkeyAcceptedKeyTypes +ssh-rsa


ansible이 호스트에 연결하거나 패커가 ansible을 호스트에 연결하는 경우 추가 단계가 한두 단계 필요합니다.

가능한 경우:

ansible --ssh-extra-args="-o PubkeyAcceptedKeyTypes=+ssh-rsa"


ansible 프로비저닝이 있는 패커의 경우:

build {
  sources = ["sources.amazon-ebs.aws"]
  provisioner "ansible" {
    ansible_env_vars = [
      ...
      "ANSIBLE_SSH_ARGS='-o PubkeyAcceptedKeyTypes=+ssh-rsa -o HostkeyAlgorithms=+ssh-rsa'"
    ]
    playbook_file       = "..."
    galaxy_file         = "..."
    ...
    extra_arguments     = "${concat(local.default_ansible_extra_args, var.ansible_extra_args)}"
  }
}


이 문제의 원인에 대한 배경 정보: https://ikarus.sg/rsa-is-not-dead/

한동안 이것으로 돌아올 필요가 없기를 바랍니다 :-)

좋은 웹페이지 즐겨찾기