web-dev-qa-db-fra.com

Instance SSH vers AWS sans paires de clés

1: Existe-t-il un moyen de se connecter à une instance AWS sans utiliser de paires de clés? Je souhaite configurer plusieurs sites/utilisateurs sur une seule instance. Cependant, je ne souhaite pas donner de paires de clés aux clients pour qu'ils se connectent.

2: Quel est le moyen le plus simple de configurer des sites/utilisateurs d'hébergement dans une instance AWS avec différents domaines pointant vers des répertoires distincts?

46
Andres

1) Vous devriez pouvoir changer la configuration de ssh (sous Ubuntu, c’est typiquement dans /etc/ssh ou /etc/sshd) et réactivez les connexions par mot de passe.

2) AWS n'a rien de vraiment spécifique à ce sujet - Apache peut gérer les VHOSTS (hôtes virtuels) prêts à l'emploi - vous permettant de spécifier qu'un certain domaine est desservi à partir d'un certain répertoire. Je Google que pour plus d'informations sur les détails.

18
Chris Bunch

Réponse à la question 1

Voici ce que j'ai fait sur un Ubuntu EC2:

A) Connectez-vous en tant que root à l'aide des paires de clés

B) Configurez les utilisateurs nécessaires et leurs mots de passe avec

# Sudo adduser USERNAME
# Sudo passwd USERNAME

C) Modifier /etc/ssh/sshd_config réglage

Pour qu'un utilisateur valide puisse se connecter sans clé

PasswordAuthentication yes

Je veux aussi que root se connecte aussi sans clé

PermitRootLogin yes

D) Redémarrez le démon ssh avec

# Sudo service ssh restart

changez simplement ssh en sshd si vous utilisez centOS

Vous pouvez maintenant vous connecter à votre ec2 instance sans paire de clés.

124
illy

Je suis venu ici via Google à la recherche d'une réponse sur la manière de configurer Cloud Init pour ne pas désactiver PasswordAuthentication sur AWS. Les deux réponses ne répondent pas au problème. Sans cela, si vous créez une AMI, alors l'initialisation d'instance en nuage désactivera à nouveau cette option.

La méthode correcte pour ce faire consiste à remplacer sshd_config manuellement le réglage de cloud init (outil Open Source utilisé pour configurer une instance lors de la mise en service. Pour en savoir plus, rendez-vous à l'adresse: https: //cloudinit.readthedocs. org/fr/latest / ). Le fichier de configuration de cloud init se trouve à l’adresse: /etc/cloud/cloud.cfg

Ce fichier est utilisé pour configurer une grande partie de la configuration utilisée par cloud init. Lisez ce fichier pour voir des exemples d'éléments que vous pouvez configurer sur cloud-init. Cela inclut des éléments tels que le nom d'utilisateur par défaut sur une instance nouvellement créée)

Pour activer ou désactiver la connexion par mot de passe via SSH, vous devez modifier la valeur du paramètre ssh_pwauth. Après avoir modifié le paramètre ssh_pwauth de 0 à 1 dans le fichier /etc/cloud/cloud.cfg, créez une AMI. Si vous lancez à partir de cette AMI nouvellement cuite, l'authentification par mot de passe sera activée après le provisionnement.

Vous pouvez le confirmer en vérifiant la valeur de PasswordAuthentication dans la configuration ssh, comme indiqué dans les autres réponses.

13
ali-hussain

Récemment, AWS a ajouté une fonctionnalité appelée Sessions Manager au service Systems Manager, qui permet de SSH dans une instance sans avoir à configurer de clé privée ni à ouvrir le port 22. Je pense que l'authentification est réalisée avec IAM et éventuellement MFA.

Vous pouvez en savoir plus à ce sujet ici:

https://aws.Amazon.com/blogs/aws/new-session-manager/

1
Parag

su - root

Aller à /etc/ssh/sshd_config

vi sshd_config

Authentification:

PermitRootLogin yes

Pour activer les mots de passe vides, remplacez par oui (non recommandé)

PermitEmptyPasswords no

Passez à non pour désactiver les mots de passe en clair en tunnel

PasswordAuthentication yes

:X!

Puis redémarrez le service ssh

root@cloudera2:/etc/ssh# service ssh restart
ssh stop/waiting
ssh start/running, process 10978

Allez maintenant aux fichiers sudoers (/ etc/sudoers).

Spécification de privilège utilisateur

root  ALL=(ALL)NOPASSWD:ALL
yourinstanceuser  ALL=(ALL)NOPASSWD:ALL    / This is the user by which you are launching instance.
1
Moin

AWS a ajouté une nouvelle fonctionnalité permettant de se connecter à une instance sans aucun port ouvert, AWS SSM Session Manager. https://aws.Amazon.com/blogs/aws/new-session-manager/

J'ai créé un script soigné ProxyCommand SSH qui ajoute temporairement votre clé publique ssh à l'instance cible lors de la connexion à l'instance cible. La bonne chose à ce propos est que vous vous connecterez sans avoir à ajouter le port ssh (22) à vos groupes de sécurité, car la connexion ssh est tunnelée via le gestionnaire de session ssm.

AWS SSM SSH ProxyComand -> https://Gist.github.com/qoomon/fcf2c85194c55aee34b78ddcaa9e83a1

0
qoomon