Puncte:0

Unable to ssh using ProxyJump but it works with ssh -J

drapel cn

My question is: How do I set up a bastion host for ssh on AWS using an ubuntu instance?

I can do the following with success:

root@e183d80cdabc# ssh -J [email protected] [email protected]
Last login: Sat Sep  4 13:14:17 2021 from 10.240.0.30
==> SUCCESS! ==> ubuntu@ip-10-240-0-20:~$

But it fails when I try the ~/.ssh/config file approach. Commands used:

# ssh 10.240.0.20
# ssh [email protected]
# ssh -i ~/.ssh/id_rsa [email protected]

ssh: connect to host 10.240.0.20 port 22: Connection refused

My ~/.ssh/config looks like this:

root@e183d80cdabc# cat $HOME/.ssh/config
Host bastion
  HostName 54.170.186.144
Host remote
  HostName 10.240.0.20
  ProxyJump bastion

I am running ubuntu on AWS as follows:

ubuntu@ip-10-240-0-30:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

I have tried adding the User ubuntu field but this does not help.

My /etc/ssh/ssh_config on the server looks like this:

Host *
    ForwardX11Trusted yes
    IdentityFile ~/.ssh/id_rsa
    Port 22
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes

UPDATE I am now using the verbose option i.e.

root@e183d80cdabc# ssh -vvv 10.240.0.20
OpenSSH_8.2p1 Ubuntu-4ubuntu0.3, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /root/.ssh/config
debug1: /root/.ssh/config line 2: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname 10.240.0.20 is address
debug2: ssh_connect_direct
debug1: Connecting to 10.240.0.20 [10.240.0.20] port 22.
debug1: connect to address 10.240.0.20 port 22: Connection refused
ssh: connect to host 10.240.0.20 port 22: Connection refused

It appears not to be using any jump host (i.e. it skips the bastion) and is going directly, and FAILS.

Any ideas greatly appreciated! Thank You

=========================================================

UPDATE: 2021-09-04-15-44 - with SOLUTION Thanks all, I have marked as answer, below.

The correct config does not use HostName, as the matching is done on Host. I was also able to include a wildcard on the ip address, which is what I was really after.

ssh config

root@e183d80cdabc# cat $HOME/.ssh/config
Host bastion
  HostName 63.33.206.201
  User ubuntu
Host 10.240.0.*
  ProxyJump bastion
  User ubuntu

And voila!

# ssh 10.240.0.20
...
ubuntu@ip-10-240-0-20:~$
anx avatar
drapel fr
anx
Nu copiați cheile ssh *private*, păstrarea lor în siguranță stocate local este întregul *punctul* al acestui mecanism.
drapel in
Când se îndoiește, rulează ssh cu o verbozitate suplimentară `ssh -vvv ... remote`.
drapel cn
Mulțumesc anx --> azi verificat că nu trebuie să copiez cheia privată oriunde - funcționează cu linia de comandă -J fără copiere. Dar tot nu funcționează cu comanda simplă ssh împreună cu fișierul ~/.ssh/config care conține toți parametrii (inclusiv „Utilizator ubuntu”)
drapel cn
Multumesc zoredache - actualizat cu iesirea -zzz de mai sus.
anx avatar
drapel fr
anx
Voi edita părțile periculoase ale întrebării dvs.. nu ezitați să le dedicați o întrebare separată, dar sunt destul de sigur că există deja duplicate pentru acestea.
Puncte:3
drapel fr

Potrivirea se face pe Gazdă strofă, nu pe Nume gazdă.

Încerca:

ssh ubuntu@remote
drapel cn
Yipee! Acesta este răspunsul, mulțumesc un milion de Tomek! Vă rugăm să vedeți actualizarea mea @ 2021-09-04-15 (în întrebarea inițială de mai sus) care adaugă suport suplimentar pentru utilizarea unei anumite adrese IP și a unui wildcard pentru a include intervalul de subrețea. Trecere grozavă, mulțumesc!
Puncte:3
drapel fr
anx

Diferența dintre linia de comandă

ssh -J [email protected] [email protected]

și ce vă recomand să faceți pentru a face referire la configurația dvs

telecomanda ssh

este că acesta din urmă nu are nici IP-uri nici utilizatorul să se autentifice pe ambele mașini în linia de comandă - trebuie să editați configurația ssh pentru a o include toate informațiile pe care nu le mai transmiteți pe linia de comandă:

# $HOME/.ssh/config
### Gazda Bastionului
Bastion gazdă
  Nume gazdă 54.170.186.144
  Utilizator ubuntu

### Gazda de la distanță
Telecomanda gazdă
  Nume gazdă 10.240.0.20
  Utilizator ubuntu
  Bastionul ProxyJump

Actualizare: În timp ce da, în teorie tu poate sa configurați-vă Gazdă strofe să se potrivească cu adresele IP, recomand împotriva facand asa.

Dacă o gazdă nu este accesată direct cu o anumită adresă IP, atunci ar trebui să se facă referire la aceasta de către Nume - doar imaginați-vă ce se întâmplă atunci când aveți același spațiu IP (privat) alocat mai multor gazde, nu ați putea aloca configurația corectă ProxyJump pentru fiecare.

Un alt motiv pentru care utilizarea adreselor pentru a se referi la gazde este nefavorabilă este gazdele accesibile prin mai multe familii de adrese: dacă o gazdă este accesibilă prin IPv4 și IPv6, probabil că doriți ca conexiunea dvs. ssh să rămână independentă de protocol și să adăugați un semnalizator numai atunci când doriți să limitați. alegeri (automate).

drapel cn
multumesc anx. Da, din păcate, cele de mai sus oferă exact același lucru, adică nu funcționează. Vă mulțumim pentru răspunsul dumneavoastră!
drapel cn
Vă rugăm să vedeți răspunsul final - problema este legată de potrivire - adăugarea câmpului Utilizator singură nu va ajuta - trebuie să se potrivească cu configurația corectă. Folosisem HostName și ar fi trebuit să folosesc host pentru a face potrivirea. Mulțumesc pentru ajutor anx!
anx avatar
drapel fr
anx
@Banoona Da, ar trebui să vă referiți la gazde după cum sunt numite în linia „Gazdă” din configurația dvs. Dar, de asemenea, cred că acestea ar trebui să fie (ideal: canonice *gazdă*) nume, nu adrese.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.