Paramètres de redirection de port ssh Linux (tunnel)

J'ai la possibilité de définir le contenu du sujet sur le serveur Linux, Notez que cela a pris du temps. Et je l'ai écrit en espérant qu'il serait utile à quelqu'un.

Ce que je voulais faire

-Installez un tunnel (local: 50000) sur le serveur Linux (local) ・ Connectez-vous à RDS à partir du serveur Linux (étape) -Connectez-vous à RDS en utilisant un tunnel avec un certain service (fonctionnant sur un serveur Linux (local)) ・ Par conséquent, ce n'est pas à vous de vous connecter, mais dans le but d'utiliser certains services.

Chaque information

Serveur local

・ Transfert de port 50000 vers RDS ssh

Serveur pas à pas

Hôte: "999.999.999.999" Nom d'utilisateur: "fumidai" Certificat: "/etc/ssh/fumidai.pem" RDS Hôte: "RDS.com" Port: "3306"

La commande qui m'est venue après tout

Sur la base de chacune des informations ci-dessus, il se présente comme suit. 「ssh -o ServerAliveInterval=30 -f -N -L 50000:RDS.com:3306 [email protected] -i /etc/ssh/fumidai.pem」

Description simple de la commande

Option "-o"

Il semble que vous puissiez définir les paramètres décrits dans ssh_config en définissant l'option "-o". Par exemple, "-o XXXXX = 30".

Option "-f -N"

Requis si vous souhaitez que le processus de redirection de port (tunnel) soit en arrière-plan. C'est inutile si ce n'est pas deux, et c'est impossible si c'est juste "-f".

Option "-L"

Utilisé lors de la spécification du port local du serveur local. Dans le cas de "-R", cela ressemble à une télécommande. Je n'ai pas enquêté en détail.

Option "-i"

La destination de référence du certificat.

Il était difficile d'accéder à la commande.

C'est une chose basique, mais je me suis souvent trompé parce qu'il y avait un endroit à faire dans le jeu où il est sorti.

Autorisations de certificat

ssh fait autorité. Si vous ne le définissez pas correctement, il ne se connectera pas. Site de référence: "https://note.mokuzine.net/ssh-permission-denied/"

Le processus se déroule tout seul

Peu importe où vous regardez le site, si vous souhaitez mettre un paramètre de tunnel en arrière-plan et le supprimer Trouvez un processus et tuez-le. Cependant, je voudrais vous pardonner d'avoir été abandonné par vous-même.

Tant que vous le déplacez avec "-f -N", il se déplacera en arrière-plan. Je l'ai également confirmé avec la commande netstat, mais il est correctement dans l'état Listen. Cependant, il tombe en environ 2 heures et 15 minutes. De plus, si vous laissez le service communiquer environ 1 heure après le démarrage du processus (en le laissant comme Écouter), La communication ne se fait pas correctement, probablement parce que je l'ai laissée longtemps. Il échoue en cours de route. Eh bien, il n'y avait pas de communication, alors je me demandais si quelque chose se passait.

Si vous regardez de plus près, Karnel? Il semble qu'il sera coupé s'il n'y a pas de communication en raison des spécifications ou de quelque chose. "Echec de l'écriture: tuyau cassé" au moment où le processus descend vers le terminal où le processus a été réellement exécuté A été affiché.

Site de référence: "https://www.riscascape.net/archives/9570"       :「https://alpha-netzilla.blogspot.com/2011/12/tcp-keepalive.html」       :「https://qiita.com/kuni-nakaji/items/c07004c7d9e5bb683bc2」

Gardez en quelque sorte le processus en vie

Il y a "ServerAliveInterval" etc. dans ssh, et il communique dans le cycle et le nombre de fois spécifiés. Maintenant, vous ne mourez pas seul. La communication est possible même après environ une heure (en la laissant comme Écouter). Dans les paramètres sshd, les paramètres ici ne fonctionnent pas comme "0" par défaut.

Site de référence: "https://qiita.com/ysk24ok/items/2f4ced5edf306fdd9dfb"       :「http://www.koganemaru.co.jp/cgi-bin/mroff.cgi?sect=5&cmd=&lc=1&subdir=man&dir=jpman-11.2.2%2Fman&subdir=man&man=ssh_config」       :「https://tech.sv-cat.net/entry/2018/08/21/190127」

Tâches futures

Cependant, il ne suffit pas de démarrer le processus une seule fois. Peut-être qu'il tombera pour une raison quelconque. Si la plate-forme ou le RDS de la destination de communication tombe en panne, le processus sera définitivement interrompu. Par conséquent, il est nécessaire de disposer d'un mécanisme pour redémarrer le processus en prévision d'un accident inattendu. Je prévois de le surveiller avec crond et de le retourner. J'ai pensé en faire un service avec systemd, Après tout, il semble reposer sur la coque, donc crond semble être bon.

Si vous avez d'autres meilleurs moyens, nous espérons que vous l'apprécierez.

Recommended Posts

Paramètres de redirection de port ssh Linux (tunnel)
Inclut le transfert de port docker-nginx sur AWS Linux 2
Redirection de port UDP
[Linux] Paramètres DNS
[Linux] [Paramètres initiaux] Paramètres système
[Linux] su, paramètres sudo
Linux, paramètres de proxy Windows
À propos de WOL Port Forward
[Linux] [Configuration initiale] Introduction
[Linux] [Paramètres initiaux] Installation et désinstallation
[Linux] [Réglage initial] [Flutter] Résumé
[Linux] [Paramètres initiaux] Sauvegarde et restauration
La synchronisation avec le serveur qui a porté ssh sur localhost échoue [Résolu]