So erreichen Sie eine serverübergreifende Linux-SysOps-Verwaltung über SSH
Übersicht:
Bei der Linux-Systemverwaltung ist es oft notwendig, mehrere Remote-Server gleichzeitig zu verwalten. Über das SSH-Protokoll (Secure Shell) können wir serverübergreifende Verwaltungsvorgänge implementieren. In diesem Artikel wird die Verwendung von SSH zur Implementierung einer serverübergreifenden Linux-SysOps-Verwaltung (Systembetrieb und -wartung) vorgestellt und spezifische Codebeispiele bereitgestellt.
ssh-keygen -t rsa
Dadurch wird ein Paar öffentlicher und privater Schlüsseldateien generiert, die standardmäßig im Verzeichnis .ssh
des Benutzers gespeichert werden. Der Name der öffentlichen Schlüsseldatei lautet id_rsa.pub
und der Name der privaten Schlüsseldatei lautet 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
Bei Verwendung von SSH für die serverübergreifende Verwaltung ist normalerweise die passwortfreie Anmeldung konfiguriert. Die spezifischen Vorgänge sind wie folgt:
🎜🎜 (1) Kopieren Sie die öffentliche Schlüsseldateiid_rsa.pub
des Clients auf den Remote-Server, der verwaltet werden muss: 🎜rrreee🎜 Darunter user ist der Remote-Server. Der Benutzername auf dem Server, <code>remote_server
ist die IP-Adresse oder der Domänenname des Remote-Servers. 🎜🎜(2) Hängen Sie auf dem Remote-Server den Inhalt der öffentlichen Schlüsseldatei an die Datei ~/.ssh/authorized_keys
an: 🎜rrreee🎜(3) Legen Sie den ~/ auf dem fest Remote-Server. ssh
-Verzeichnis und ~/.ssh/authorized_keys
-Dateiberechtigungen: 🎜rrreee🎜Nach Abschluss der obigen Konfiguration kann eine passwortfreie Anmeldung erreicht werden. 🎜user
der Benutzername auf dem Remote-Server und remote_server
ist die IP-Adresse oder der Domänenname des Remote-Servers; command
ist der Befehl, der auf dem Remote-Server ausgeführt werden soll. 🎜🎜 (2) Dateien kopieren: 🎜🎜 Lokale Dateien auf den Remote-Server kopieren: 🎜rrreee🎜 Dateien auf dem Remote-Server auf den lokalen Server kopieren: 🎜rrreee🎜 Unter diesen ist local_file
der Pfad der lokale Datei, remote_path
ist der Pfad zur Datei auf dem Remote-Server, remote_file
ist der Pfad zur Datei auf dem Remote-Server und local_path
ist der Pfad zum lokalen Verzeichnis. 🎜servers
die Serverliste, user
der Benutzername auf dem Remote-Server und command
ist > ist der Anforderungsbefehl, der auf dem Remote-Server ausgeführt wird. 🎜🎜Durch die oben genannten Schritte können wir das SSH-Protokoll verwenden, um eine serverübergreifende Linux-SysOps-Verwaltung zu erreichen. Diese Methode kann die Verwaltungseffizienz verbessern und den Arbeitsaufwand manueller Vorgänge verringern. Gleichzeitig können wir durch das Studium von Codebeispielen entsprechend der tatsächlichen Situation erweitern und optimieren und so die Flexibilität und Zuverlässigkeit des Verwaltungsbetriebs verbessern. 🎜Das obige ist der detaillierte Inhalt vonSo erreichen Sie eine serverübergreifende Linux-SysOps-Verwaltung über SSH. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!