2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Nom du service : sshd
Programme principal du serveur : /usr/sbin/sshd
Fichier de configuration du serveur : /etc/ssh/sshd config
Client SSH : Putty, Xshell, CRT, MobaXterm, FinalShell
Serveur SSH : OpenSSH
Serveur SSH : Par défaut, le port TCP 22 est utilisé, et la version du protocole de sécurité est sshv2. En plus du 2, il y en a aussi 1 (avec des failles).
Le serveur ssh comprend principalement deux fonctions de service : la liaison distante ssh et le service sftp.
Fonction : Le service SSHD utilise le protocole SSH pour effectuer un contrôle à distance ou transférer des fichiers entre ordinateurs.
Par rapport à l'utilisation de Telnet pour transférer des fichiers auparavant, cette méthode est beaucoup plus sûre car Telnet utilise la transmission en texte clair et SSH utilise la transmission cryptée.
OpenSSH est un projet logiciel open source qui implémente le protocole SSH et convient à divers systèmes d'exploitation UNIX et Linux. Le système Centos 7 a des packages logiciels liés à openssh installés par défaut et le service sshd est ajouté pour démarrer automatiquement au démarrage.
[Cependant, la version 7 présente des problèmes et des vulnérabilités et doit être mise à niveau. La dernière version est actuellement la 9.8.]
Voir la version :ssh-V
Exécutez la commande "systemctl start sshd" pour démarrer le service sshd
ssh_config et sshd_config sont tous deux des fichiers de configuration pour le serveur ssh. La différence entre les deux est que le premier est un fichier de configuration pour le client et le second est un fichier de configuration pour le serveur.
SSH est essentiellement utilisé pour gérer à distance les systèmes Linux. La raison est très simple : les méthodes de transmission telles que Telnet et FTP transmettent les informations d'authentification des utilisateurs en texte clair, ce qui est intrinsèquement dangereux et présente un risque d'écoute clandestine du réseau. SSH (Secure Shell) est actuellement plus fiable.
Est un protocole conçu pour assurer la sécurité des sessions de connexion à distance et d'autres services réseau. L'utilisation du protocole SSH peut empêcher efficacement les fuites d'informations lors de la gestion à distance. Toutes les données transmises peuvent être cryptées via SSH, et l'usurpation d'identité DNS et IP peut également être évitée.
1.3.1. Première méthode de connexion
ssh [nom d'utilisateur de l'hôte distant] @[nom d'hôte ou adresse IP du serveur distant] -p port
Si vous souhaitez utiliser le nom d'utilisateurlisi
L'identité liée à l'adresse IP est192.168.1.100
serveur et le service SSH du serveur s'exécute sur le port22
, vous devez utiliser la commande suivante :
当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。
ci-joint
mappage d'hôte
1.3.2. Deuxième méthode de connexion
ssh -l [nom d'utilisateur de l'hôte distant] [nom d'hôte ou adresse IP du serveur distant] -p port
-l : option -l, spécifie le nom de connexion.
-p : option -p, spécifie le port de connexion (lorsque le port du serveur n'est pas celui par défaut, vous devez utiliser -p pour spécifier le port de connexion)
(pas beaucoup utilisé)
Requête sur la clé publique
Requête sur le client
Le serveur interroge sa propre clé publique
Remarque : Le système n'enregistre pas les informations de l'hôte distant lors de la première connexion au serveur. Afin de confirmer l'identité de l'hôte, il sera demandé à l'utilisateur s'il doit poursuivre la connexion. Entrez oui, puis connectez-vous. Dans. À ce stade, le système écrira les informations du serveur distant dans $HOME dans le fichier /.ssh/known_hosts du répertoire personnel de l'utilisateur. La prochaine fois que vous vous connecterez, car les informations sur l'hôte sont enregistrées, vous ne serez plus invité. .
OpenSSH vérifiera la clé publique la prochaine fois que vous accéderez au même ordinateur. Si les clés publiques sont différentes, OpenSSH émettra un avertissement pour vous protéger des attaques telles que le détournement DNS.
Solution
1. Lorsque vous vous connectez à l'hôte distant via ssh, ajoutez l'option « -o StrictHostKeyChecking=no », comme suit :
ssh -o StrictHostKeyChecking=no 192.168.xxx.xxx
2. Un moyen de supprimer complètement cette invite consiste à modifier la configuration dans le fichier /etc/ssh/ssh_config (ou $HOME/.ssh/config) et à ajouter les deux lignes de configuration suivantes :
StrictHostKeyChecking non
Fichier d'hôtes connus de l'utilisateur /dev/null
Mais il vaut mieux ne pas ajouter
Serveur de configuration générale
vim /etc/ssh/sshd_config
Le port doit être changé pour éviter que d'autres ne le cassent violemment.
ListenAddress définit l'adresse IP liée au serveur SSHD, 0.0.0.0 signifie écouter toutes les adresses
Suggestion de sécurité : si l'hôte n'a pas besoin d'un accès SSH depuis le réseau public, vous pouvez remplacer l'adresse d'écoute par l'adresse du réseau interne. Cette valeur peut être écrite sous la forme de l'adresse IP locale ou de toutes les adresses, c'est-à-dire que 0.0.0.0 représente toutes. IP.
Lorsque quelqu'un se connecte au système via SSH, SSH enregistrera les informations. Le type d'informations à enregistrer est AUTHPRIV. Le journal du service sshd est stocké dans : /var/log/secure.
De manière générale, afin de déterminer si la source du client est normale et légitime, DNS sera utilisé pour vérifier le nom d'hôte du client. Cependant, généralement lors de l'interconnexion au sein de l'intranet, cette base est définie sur non, donc la vitesse de connexion sera définie. Être plus rapide.
Remarque : désactivez la résolution inversée DNS pour améliorer la vitesse de réponse du serveur.
Ainsi que certaines configurations de sécurité et réglages de sécurité
PermisRootLogin Que ce soit pour autoriser la connexion root, la valeur par défaut est autorisée, mais il est recommandé de la définir sur non.Un véritable serveur d'environnement de production ne permet pas au compte root de se connecter directement., seuls les utilisateurs ordinaires sont autorisés à se connecter. Vous devez utiliser l'utilisateur root, puis passer à l'utilisateur root.
Mot de passeAuthentification Oui
La vérification du mot de passe est bien sûr requise, vous pouvez donc écrire oui ici, ou vous pouvez la définir sur non. Sur les serveurs de production réels, selon les différentes exigences de niveau de sécurité, certains paramètres ne nécessitent pas de connexion par mot de passe et vous pouvez vous connecter via l'authentification. clé.
Permettre des mots de passe vides Non
S'il faut autoriser les utilisateurs avec des mots de passe vides à se connecter. La valeur par défaut est non. La connexion avec des mots de passe vides n'est pas autorisée.
PrintLastLog oui
Afficher les informations de la dernière connexion ! La valeur par défaut est oui
MaxAuthTries 6
Spécifie le nombre maximum d'authentifications autorisées par connexion. La valeur par défaut est 6.
Si le nombre d'authentifications échouées dépasse la moitié de cette valeur, la connexion sera déconnectée de force et des messages de journal d'échec supplémentaires seront générés.
Par défaut 3 fois
Activer le module pam
Commentaire
Liste noire et blanche
Autoriser les utilisateurs
Lorsque vous souhaitez autoriser ou interdire uniquement la connexion de certains utilisateurs, vous pouvez utiliser la configuration AllowUsers ou DenyUsers. L'utilisation des deux est similaire (attention à ne pas les utiliser en même temps).
ConfigurerAutoriser les utilisateurs
Par exemple, si seuls les utilisateurs Zhangsan et Wangwu sont autorisés à se connecter à d'autres utilisateurs (lisi)
Ajouter à
Autoriser les utilisateurs [email protected] wangwu
Divisé en 3 étapes :
Le client génère la clé (clé publique et clé privée) dans le client Xshell ;
Placez la clé publique dans le fichier ~/.ssh/authorized_key du serveur Linux ;
Configurez le client ssh (client Xshell) pour vous connecter à l'aide d'une clé
1. Générez d’abord la clé publique dans l’outil xshell
Ajustez la longueur de 2048, passez simplement à l'étape suivante, vous pouvez définir le nom et le mot de passe
Une fois la génération terminée, il y aura une clé publique, enregistrez-la
fichiers se terminant par pub
Ensuite, ouvrez notre machine Linux
Basculez vers le répertoire ~/.shh (vous devez vous connecter pour la première fois sans mot de passe, sinon il se peut qu'il n'y ait pas de fichier .shh)
Télécharger la clé publique
Bien sûr, vous devez également le remplacer par le nom standardauthorized_keys
Générer une sauvegarde de clé privée
Connexion sans mot de passe
connexion réussie
Préparez un tremplin
L'option "-t" de la commande ssh-keygen est utilisée pour spécifier le type d'algorithme pour générer les clés publiques et privées.
ssh-copy-id [email protected]
utiliserssh-copy-id
outil: Cela gérera automatiquement le processus de copie de la clé publique. Cette commande gérera automatiquement la copie de votre.id_rsa.pub
Le contenu de la clé publique est ajouté au serveur distant~/.ssh/authorized_keys
dans le fichier.
Entrer le mot de passe: Comme c'est la première fois que vous vous connectez à un serveur distant de cette manière, il vous sera peut-être demandé de saisir le mot de passe de l'utilisateur root distant.
Connectez-vous via Springboard 79 19
Modifier les autorisations
vim /etc/ssh/sshd_config
Sur les lignes 17, 43, 65
Redémarrer le service sshd
essayer à nouveau
Spécifier le port, succès
Le contenu est migré vers les ressources de fichiers
L'algorithme de signature DSA est désactivé par défaut
Préparation des fichiers
site officiel d'openshOpenSSH : Notes de publication
Étant donné que openssh9.8p1 exige que la version openssl soit supérieure ou égale à 1.1.1, openssl doit être mis à niveau et installé.
Site officielVersion OpenSSL 1.1.1v · openssl/openssl · GitHub