Ich kann wirklich nicht herausfinden, warum ich keine SSH-Verbindung zu meiner neu erstellten EC2-Instanz herstellen kann, und ich kann für mein Leben nicht herausfinden, warum.
Hier ist ein Teil meines Codes in Terraform, in dem ich die EC2- und Sicherheitsgruppen dafür erstellt habe. Das ist mein EC2-Code
resource "aws_key_pair" "AzureDevOps" {
key_name = var.infra_env
public_key = var.public_ssh_key
}
# Create network inferface for EC2 instance and assign secruity groups
resource "aws_network_interface" "vm_nic_1" {
subnet_id = var.subnet_id
private_ips = ["10.0.0.100"]
tags = {
Name = "${var.infra_env}-nic-1"
}
security_groups = [
var.ssh_id
]
}
# Add elastic IP addresss for public connectivity
resource "aws_eip" "vm_eip_1" {
vpc = true
instance = aws_instance.virtualmachine_1.id
associate_with_private_ip = "10.0.0.100"
depends_on = [var.gw_1]
tags = {
Name = "${var.infra_env}-eip-1"
}
}
# Deploy virtual machine using Ubuntu ami
resource "aws_instance" "virtualmachine_1" {
ami = var.ami
instance_type = var.instance_type
key_name = aws_key_pair.AzureDevOps.id
#retrieve the Administrator password
get_password_data = true
connection {
type = "ssh"
port = 22
password = rsadecrypt(self.password_data, file("id_rsa"))
https = true
insecure = true
timeout = "10m"
}
network_interface {
network_interface_id = aws_network_interface.vm_nic_1.id
device_index = 0
}
user_data = file("./scripts/install-cwagent.ps1")
tags = {
Name = "${var.infra_env}-vm-1"
}
}
Hier ist der Code für meine Sicherheitsgruppe
resource "aws_security_group" "ssh" {
name = "allow_ssh"
description = "Allow access to the instance via ssh"
vpc_id = var.vpc_id
ingress {
description = "Access the instance via ssh"
from_port = 22
to_port = 22
protocol = "TCP"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
tags = {
Name = "${var.infra_env}-allow-ssh"
}
}
Wenn ich noch mehr Code oder Informationen bereitstellen muss, versuche ich das zum ersten Mal, und es ist frustrierend, es herauszufinden. Ich versuche auch, Putty zu verwenden und bin mir nicht sicher, ob ich einfach nicht weiß, wie man es richtig verwendet, oder ob etwas mit meiner EC2-Konfiguration nicht stimmt.
Ich habe meinen öffentlichen SSH-Schlüssel von meinem Computer für die Variable in meiner Ressource aws_key_pair verwendet. Ich habe mein öffentliches ssh-Schlüsselpaar als.ppk-Datei für Putty gespeichert und auf meiner aws-Konsole, wenn ich zu "Verbinden" gehe, heißt es, dass ich ubuntu@10.0.0.100 für meinen Hostnamen in Putty verwenden soll, was ich getan habe und wenn ich auf "OK" und "OK" klicke es versucht, eine Verbindung herzustellen, es wird ein Netzwerkfehler angezeigt. Zeitüberschreitung der Verbindung
Lösung des Problems
Ich habe meinen öffentlichen SSH-Schlüssel verwendet
Sie müssen Ihren privaten Schlüssel verwenden, nicht den öffentlichen.
Verwenden Sie ubuntu@10.0.0.100
10.0.0.100
ist eine private IP-Adresse. Um sich über das Internet mit Ihrer Instanz verbinden zu können, müssen Sie eine öffentliche IP -Adresse verwenden.
Keine Kommentare:
Kommentar veröffentlichen