[LINUX] Connectez-vous à un serveur distant avec SSH

Affiche ce que les élèves inexpérimentés en informatique ont appris: neutral_face: Ceci est mon premier message posté. Je vous remercie.

Qu'est-ce que SSH

Un protocole qui communique en toute sécurité avec un ordinateur distant à l'aide de la technologie de cryptage et d'authentification lorsque vous souhaitez travailler sur un serveur distant (serveur distant)

Avantages de SSH

・ Vous pouvez opérer en toute sécurité tout en évitant le risque d'écouter les communications. ・ Vous pouvez exploiter les fichiers et modifier les fichiers de paramètres sur le serveur.

Connectez-vous avec SSH

Vous pouvez vous connecter de deux manières: l'authentification par mot de passe et l'authentification par clé publique

Pour utiliser SSH, il est nécessaire d'installer un logiciel appelé serveur SSH à distance et client SSH localement. Cependant, il est installé par défaut sur les serveurs Linux et Mac OS, il n'est donc pas nécessaire de l'installer.

$ ssh [Nom d'utilisateur connexion]@[adresse IP]

Lorsque vous vous connectez pour la première fois, il vous sera demandé si vous voulez vraiment vous connecter, alors entrez oui Ensuite, il vous sera demandé d'entrer le mot de passe, afin que vous puissiez vous connecter en entrant le mot de passe

Lors de la connexion à une machine Linux (192.168.2.67) pour la première fois avec ssh
 macmini: ~ user1 $ ssh [email protected]
The authenticity of host '192.168.2.67(192.168.2.67)' can't be established.
RSA key fingerprint is c3 : e3 : 8d :5e ea :58 : 0e :a9 :  e5 : 03 : 34 : 56 : b3 : ca : a3 : 60.
Are you sure you want to continue connecting (yes, no)?oui ← entrer oui
Warning : Permanently added '192.168.2.67'(RSA) to the list of known hosts.
[email protected]'s passward:← Entrez le mot de passe
Last login: Sat Aug 23 18:34:30 2014 from 192.168.2.67 
[hinako@localhost ~]$

Clé privée et clé publique

Il n’est pas bon pour la sécurité qu’un nombre non spécifié de personnes puisse entrer sur le serveur Restreindre qui peut créer deux fichiers, *** clé privée *** et *** clé publique ***, sur le serveur La clé publique vous sera envoyée lorsque vous démarrez SSH sur le serveur. Stockez la clé privée dans votre environnement local. Le code est généré par la clé publique, et dans l'environnement local, le code envoyé depuis le serveur est déchiffré par la clé privée. De cette manière, l'échange d'informations entre le serveur et l'environnement local est sécurisé.

Connectez-vous avec une clé publique

procédure

  1. Générer des clés publiques et privées (environnement local)
  2. Installez la clé publique côté serveur (environnement local → serveur)
  3. Vérifiez si vous pouvez vous connecter avec l'authentification par clé publique
1. Générer des clés publiques et privées
~ $ cd .ssh # .Déplacer vers le répertoire ssh
.ssh $ ssh-keygen -t rsa  #Créer des clés publiques et privées

Après la saisie, ce qui suit s'affiche et saisissez l'emplacement de stockage de la clé privée et le mot de passe à définir pour la clé privée.

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hogehoge/.ssh/id_rsa): [Où mettre la clé privée] 
Enter passphrase (empty for no passphrase): [mot de passe]
Enter same passphrase again: [mot de passe]

La clé publique est stockée dans *** ~ / .ssh / id_rsa.pub *** et la clé privée est stockée dans *** ~ / .ssh / id_rsa *** Entrez la commande suivante et si le résultat de sortie contient les deux suivants, la création est réussie.

$ ls
=> [Nom de la clé]_key_rsa [Nom de la clé]_key_rsa.pub

Utilisez la commande cat pour vérifier le contenu de la clé publique pour voir si les clés publique et privée ont été créées.

#Vérifiez le contenu de la clé publique
$ cat [Clé publique]_key_rsa.pub

#Vérifiez le contenu de la clé privée
$ cat [Clé privée]_key_rsa

Lorsque j'exécute la commande, une chaîne complexe s'affiche sur le terminal. Il s'agit du contenu de la clé publique et de la clé privée créées précédemment.

2. Installez la clé publique côté serveur

-Copier le fichier de clé publique de l'environnement local sur le serveur distant

Utilisez la commande scp pour copier la clé publique à distance sur le serveur *** commande scp *** Une commande qui vous permet de spécifier le répertoire de destination et d'envoyer un fichier

$ scp ~/.ssh/id_rsa.pub [Nom d'utilisateur]@ [adresse IP]:~/.ssh
$ ssh -i [Le nom de la clé téléchargée].pem ec2-user@[Adresse IP élastique associée à l'instance EC2 créée]

-Ajouter le contenu du fichier de clé publique de l'environnement local au fichier de clé publique du serveur distant.

Jusqu'à présent, dans l'environnement local, la clé publique était enregistrée dans id_rsa.pub, mais sur le serveur distant, la clé publique était enregistrée dans ~ / .ssh / allowed_keys.

#Connectez-vous au serveur distant
$ ssh [Nom d'utilisateur]@ [adresse IP]

# .Déplacer vers le répertoire ssh
$ cd ~/.ssh  

#Fichier de clé publique du serveur distant (~/.ssh/authorized_créer des clés)
touch .ssh/authorized_keys

#Ajouter le contenu de la clé publique
$ cat ~/id_rsa.pub >> authorized_keys

Enfin, définissez les autorisations sur le répertoire .ssh et le fichier authorized_keys. Définissez toutes les autorisations de lecture / écriture / exécution dans le répertoire .ssh et les autorisations de lecture / écriture dans le fichier authorized_keys.

# .répertoire ssh et autorisé_Définir les autorisations pour le fichier de clés
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
3. Vérifiez si vous pouvez vous connecter avec l'authentification par clé publique
#Connectez-vous au serveur distant
$ ssh [Nom d'utilisateur]@ [adresse IP]

Après avoir tapé la commande, l'écran suivant s'affiche. (1) Entrez le mot de passe décrit dans le #Enter password pour définir la clé publique et la clé privée sur la # clé privée générée. Après cela, si [Nom d'utilisateur] @ [Adresse IP]% s'affiche, la connexion est réussie: v:

Enter passphrase for key '~/.ssh/id_rsa':← Entrez le mot de passe
[Nom d'utilisateur]@ [adresse IP]%← Connexion réussie au serveur SSH

Recommended Posts

Connectez-vous à un serveur distant avec SSH
écran et écran partagé avec connexion python et ssh au serveur distant
Je n'arrive pas à me connecter à la page d'administration avec Django 3
Connectez-vous à Raspberry PI avec ssh sans mot de passe (authentification par clé)
Connectez-vous à Yahoo Business avec Selenium Python
Connectez-vous facilement à AWS avec plusieurs comptes
Connectez-vous avec json en utilisant pygogo.
Connexion SSH au serveur cible à partir de Windows en un clic sur un raccourci
Envoyer les données du journal du serveur vers Splunk Cloud
Convertissez l'image au format .zip en PDF avec Python
[Procédure simple] Pour vous connecter à ssh sans mot de passe
Ssh dans un environnement virtuel avec vscode Remote Development
Décrivez la destination ssh en plusieurs étapes dans la configuration, connectez-vous facilement et copiez le fichier avec scp
Connectez-vous à l'écran de gestion fortigate (6.0) à partir de sélénium-essayez de vous déconnecter
[Postgresql] Connexion SSH au serveur de base de données externe à partir du client
Comment manipuler le DOM dans iframe avec Selenium
Comment se connecter automatiquement comme 1Password depuis CLI
[Shell] Comment obtenir la branche distante par défaut avec Git
Comment se connecter à AtCoder avec Python et soumettre automatiquement
J'ai essayé de sortir le journal d'accès au serveur en utilisant Node.js
C'était génial d'éditer le fichier Python dans Raspberry Pi avec la fonction à distance d'Atom
Programmation pour combattre dans le monde ~ 5-1
Programmation pour combattre dans le monde ~ 5-5,5-6
Programmer pour combattre dans le monde 5-3
Programmation pour combattre dans le monde - Chapitre 4
Dans la commande python, python pointe vers python3.8
Essayez Cython dans les plus brefs délais
Comment se connecter à Docker + NGINX
Programmation pour combattre dans le monde ~ 5-2
J'ai essayé de décrire le trafic en temps réel avec WebSocket
Acquérir automatiquement le journal des opérations dans le terminal lors de la connexion à Linux
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
J'ai essayé de traiter l'image en "style croquis" avec OpenCV
Accédez à l'API New Relic en Python pour obtenir l'état du serveur
La synchronisation avec le serveur qui a porté ssh sur localhost échoue [Résolu]
J'ai essayé de traiter l'image dans un "style de dessin au crayon" avec OpenCV
J'ai essayé de me connecter automatiquement à Twitter avec du sélénium (RPA, scraping)
Une histoire qui n'a pas fonctionné lorsque j'ai essayé de me connecter avec le module de requêtes Python
J'ai essayé de créer un environnement dans lequel le travail dans le conteneur Docker sur le serveur distant peut être effectué directement à partir du code VS local avec une connexion SSH
Utilisez Paints Chainer avec Selenium pour colorer automatiquement les images dans le répertoire
Accéder à l'API Docker Remote avec des requêtes
Charger le SDK Python distant avec IntelliJ
Essayez de vous connecter à qiita avec Python
Démarrez le serveur Web dans le répertoire actuel
Comportement lors du retour dans le bloc with
J'ai essayé de communiquer avec un serveur distant par communication Socket avec Python.
Connectez-vous au VPN avec votre smartphone et éteignez / rallumez le serveur
Comment régler l'heure du serveur sur l'heure japonaise
Sortie du journal Python vers la console avec GAE
Comment obtenir la différence de date et d'heure en secondes avec Python
Afficher Python 3 dans le navigateur avec MAMP
Comment utiliser BigQuery en Python
Connectez-vous à Slack à l'aide de requêtes en Python
Modifiez le fichier du serveur de destination de la connexion SSH sur le serveur avec VS Code
Dans Jupyter, ajoutez IPerl au noyau.
Connectez-vous à GNU / Linux avec un bureau distant
Que faire si le serveur ne démarre pas avec python manage.py runserver
Divers commentaires à écrire dans le programme
Pour faire fonctionner la station d'horodatage en Python
Alignez la barre de couleurs sur la figure avec matplotlib