EDITORIAL:
Este artículo contiene la configuración del servidor openssh y una configuración del servidor proxy inverso ssh en dos partes. Ambos son relativamente simples, pero la frecuencia de uso es baja y fácil de olvidar, así que anótelo.
0. Configurar openssh-server
1. Instale openssh-server
sudo apt install openssh-server
2. Abra el archivo sshd_config y escriba lo siguiente
sudo vim /etc/ssh/sshd_config
Port 12345 # 设置自己喜欢的ssh访问端口 默认22
PermitRootLogin yes # 允许远程root登录
3. Reinicie el servicio openssh-server.
sudo systemctl restart sshd
4. Inicie sesión en el servidor ssh.
# 端口为22时可省略
ssh username@sshServerIP -p 12345
5. Permita que openssh-server se ejecute en segundo plano
sudo systemctl enable sshd
1. SSH logra la penetración de la intranet
La penetración de la intranet requiere un host de red pública con una IP conocida para "estar en guardia", recibir el inicio de sesión del host de la intranet y mantener la conexión ssh.
Anfitrión | nombre de usuario | IP | puerto del servidor ssh | autossh | Puerto mapeado |
---|---|---|---|---|---|
Red pública P | p_user | 9.9.9.9 | 10009 | - | 10008 |
Intranet I | i_user | 1.1.1.1 | 10001 | 10002 | - |
1. Instale y configure openssh-server (igual que el anterior) en el host de la red pública (P) y el host de la red interna (I), respectivamente, y configure los puertos como 10009 y 10001 respectivamente
2. Instale autossh en el host de la red interna, esta herramienta es responsable de mantener la conexión ssh (consulte la información relacionada con ssh para saber por qué se mantiene)
# 内网 I:
sudo apt install autossh
3. Genere id_rsa en el host de la red interna.
# 内网 I:
ssh-keygen # 这里直接Enter到底 不要设置密码
#查看生成的id_rsa
ls ~/.ssh/
# id_rsa.pub 就是公钥
4. Copie la clave pública generada por el host de la red interna al host de la red pública
# 内网 I:
scp -P 10009 ~/.ssh/id_rsa.pub [email protected]:~/
5. Agregue la clave pública al host de la red pública.
# 公网 P:
sudo cat id_rsa.pub >> ~/.ssh/authorized_keys
6. El host de la intranet establece activamente una conexión autossh.
# 内网 I:
autossh -M 10002 -NfR 10008:localhost:10001 [email protected] -p 10009
7. Verificación
# 公网 P:
ssh i_user@localhost -p 10008
8. Configure para establecer automáticamente una conexión
al arrancar. Agregue el siguiente comando a "Iniciar aplicación" de Ubuntu y verifíquelo.
# 就是第6步的命令
autossh -M 10002 -NfR 10008:localhost:10001 [email protected] -p 10009
Hay un problema aquí, debe estar conectado y autenticado antes de que pueda iniciarse, y es imposible darse cuenta del "inicio" real.
He probado init.d; rc; systemd y así sucesivamente para escribir scripts sh con éxito. Si tiene una respuesta correcta, hágamelo saber, gracias.