Mimo, że napisałem sporą ilość szefów kuchni, jestem całkiem nowy zarówno dla AWS/VPC, jak i administrowania ruchem sieciowym (szczególnie hosta bastionu).Używanie wtyczki nóż ec2 do tworzenia maszyny wirtualnej w prywatnej podsieci VPC
Używając wtyczki noża ec2, chciałbym móc dynamicznie tworzyć i ładować maszynę wirtualną z mojej stacji roboczej programisty. Maszyna wirtualna powinna istnieć w publicznej lub prywatnej podsieci mojej VPC. Chciałbym zrobić to wszystko bez użycia elastycznego adresu IP. Chciałbym także, aby mój host z bastionem był bezstronny (tj. Chciałbym uniknąć tworzenia jawnych tuneli odsłuchowych VM na moim hostelu).
Udało mi się użyć wtyczki nóż ec2 do utworzenia maszyny wirtualnej w dotychczasowy model EC2 (np. poza moją VPC). Teraz próbuję utworzyć instancję w mojej VPC. W wierszu poleceń noża określam bramkę, grupy zabezpieczeń, podsieć itd. Maszyna wirtualna zostanie utworzona, ale nóż nie przejdzie do niej później.
Oto mój wiersz poleceń nóż:
knife ec2 server create \
--flavor t1.micro \
--identity-file <ssh_private_key> \
--image ami-3fec7956 \
--security-group-ids sg-9721e1f8 \
--subnet subnet-e4764d88 \
--ssh-user ubuntu \
--server-connect-attribute private_ip_address \
--ssh-port 22 \
--ssh-gateway <gateway_public_dns_hostname (route 53)> \
--tags isVPC=true,os=ubuntu-12.04,subnet_type=public-build-1c \
--node-name <VM_NAME>
Podejrzewam, że mój problem wiąże się z konfiguracją mojego hosta bastion. Po dniu szukania w Google nie mogłem znaleźć konfiguracji, która działa. Mogę ssh do hosta bastionu, a stamtąd mogę ssh do nowo utworzonej maszyny wirtualnej. Nie mogę uzyskać noża, aby pomyślnie powielić to za pomocą argumentu bramy.
Grałem z/etc/ssh/ssh_config. Oto jak to istnieje dzisiaj:
ForwardAgent yes
#ForwardX11 no
#ForwardX11Trusted yes
#RhostsRSAAuthentication no
#RSAAuthentication yes
#PasswordAuthentication no
#HostbasedAuthentication yes
#GSSAPIAuthentication no
#GSSAPIDelegateCredentials no
#GSSAPIKeyExchange no
#GSSAPITrustDNS no
#BatchMode no
CheckHostIP no
#AddressFamily any
#ConnectTimeout 0
StrictHostKeyChecking no
IdentityFile ~/.ssh/identity
#IdentityFile ~/.ssh/id_rsa
#IdentityFile ~/.ssh/id_dsa
#Port 22
#Protocol 2,1
#Cipher 3des
#Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
#EscapeChar ~
Tunnel yes
#TunnelDevice any:any
#PermitLocalCommand no
#VisualHostKey no
#ProxyCommand ssh -q -W %h:%p gateway.example.com
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
GatewayPorts yes
Mam również ustawić /home/ubuntu/.ssh/identity do pasującego klucza prywatnego mojej nowej instancji.
UPDATE:
zauważam następujące w /var/log/auth.log gospodarza Bastion za:
May 9 12:15:47 ip-10-0-224-93 sshd[8455]: Invalid user from <WORKSTATION_IP>
May 9 12:15:47 ip-10-0-224-93 sshd[8455]: input_userauth_request: invalid user [preauth]
Występuję z podobnym problemem. Dodanie opcji --ssh-gateway pomaga, ale nadal nie udało mi się nawiązać połączenia z moim kluczem publicznym. Wciąż otrzymuję 'Wprowadź hasło dla'. Zastanawiam się tylko, czy doświadczyłeś tego również, gdy pracowałeś nad tym. –
jmreicha
Po aktualizacji, było kilka rzeczy, które musiałem naprawić. Po pierwsze, nie użyłem poprawnego pliku identitfy, więc SSH domyślnie używał nazwy użytkownika/hasła. Inną rzeczą jest to, że muszę włączyć przekazywanie, które nie było domyślnie (Ubuntu). – jmreicha