Comment réaliser une gestion SysOps Linux multi-serveurs via SSH
Aperçu :
Dans la gestion du système Linux, il est souvent nécessaire de gérer plusieurs serveurs distants en même temps. Grâce au protocole SSH (Secure Shell), nous pouvons mettre en œuvre des opérations de gestion cross-serveur. Cet article explique comment utiliser SSH pour implémenter la gestion Linux SysOps (exploitation et maintenance du système) entre serveurs et fournit des exemples de code spécifiques.
ssh-keygen -t rsa
Cela générera une paire de fichiers de clés publiques et privées, qui sont stockés par défaut dans le répertoire .ssh
de l'utilisateur. Le nom du fichier de clé publique est id_rsa.pub
et le nom du fichier de clé privée est id_rsa
. .ssh
目录下。公钥文件名为id_rsa.pub
,私钥文件名为id_rsa
。
(1)将客户端的公钥文件id_rsa.pub
拷贝到需要管理的远程服务器上:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_server
其中,user
是远程服务器上的用户名,remote_server
是远程服务器的IP地址或域名。
(2)在远程服务器上,将公钥文件内容追加到~/.ssh/authorized_keys
文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(3)设置远程服务器上的~/.ssh
目录以及~/.ssh/authorized_keys
文件的权限:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
完成以上配置后,即可实现免密码登录。
(1)远程执行命令:
ssh user@remote_server 'command'
其中,user
是远程服务器上的用户名,remote_server
是远程服务器的IP地址或域名,command
是要在远程服务器上执行的命令。
(2)拷贝文件:
将本地文件拷贝到远程服务器:
scp local_file user@remote_server:remote_path
将远程服务器上的文件拷贝到本地:
scp user@remote_server:remote_file local_path
其中,local_file
是本地文件的路径,remote_path
是远程服务器上文件的路径,remote_file
是远程服务器上的文件路径,local_path
是本地目录的路径。
#!/bin/bash servers=("server1" "server2" "server3") for server in "${servers[@]}" do ssh user@$server 'command' done
其中,servers
是服务器列表,user
是远程服务器上的用户名,command
Lors de l'utilisation de SSH pour la gestion inter-serveurs, la connexion sans mot de passe est généralement configurée. Les opérations spécifiques sont les suivantes :
🎜🎜 (1) Copiez le fichier de clé publique du clientid_rsa.pub
sur le serveur distant qui doit être géré : 🎜rrreee🎜 Parmi eux, user est le serveur distant. Le nom d'utilisateur sur le serveur, <code>remote_server
est l'adresse IP ou le nom de domaine du serveur distant. 🎜🎜(2) Sur le serveur distant, ajoutez le contenu du fichier de clé publique au fichier ~/.ssh/authorized_keys
: 🎜rrreee🎜(3) Définissez le ~/ sur le serveur distant. répertoire ssh
et autorisations de fichier ~/.ssh/authorized_keys
: 🎜rrreee🎜Après avoir terminé la configuration ci-dessus, une connexion sans mot de passe peut être obtenue. 🎜user
est le nom d'utilisateur sur le serveur distant et remote_server
est l'IP du serveur distant Adresse ou nom de domaine, command
est la commande à exécuter sur le serveur distant. 🎜🎜 (2) Copier les fichiers : 🎜🎜 Copier les fichiers locaux sur le serveur distant : 🎜rrreee🎜 Copier les fichiers du serveur distant vers le local : 🎜rrreee🎜 Parmi eux, local_file
est le chemin du fichier local, remote_path
est le chemin d'accès au fichier sur le serveur distant, remote_file
est le chemin d'accès au fichier sur le serveur distant et local_path
est le chemin d'accès au répertoire local. 🎜servers
est la liste des serveurs, user
est le nom d'utilisateur sur le serveur distant et command
est la commande de requête exécutée sur le serveur distant. 🎜🎜Grâce aux étapes ci-dessus, nous pouvons utiliser le protocole SSH pour réaliser une gestion SysOps Linux inter-serveurs. Cette méthode peut améliorer l’efficacité de la gestion et réduire la charge de travail des opérations manuelles. Dans le même temps, en étudiant des exemples de code, nous pouvons étendre et optimiser en fonction de la situation réelle, améliorant ainsi la flexibilité et la fiabilité des opérations de gestion. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!