2015 - Intranet & SecureShell

Todo lo relacionado con hacer funcionar a Arch como servidor de lo que sea (pagina web, ftp, archivos, firewall & router, etc...).
Responder
inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

2015 - Intranet & SecureShell

Mensaje por inukaze » 20 Jul 2015, 11:30

Hola muy buenas , dejare aquí una entrada , de lo que voy a hacer , básicamente es para una red domestica pequeña , 4 computadoras , 1 con GNU/Linux , 3 con Microsoft Windows , 6 Equipos con Android

1 - Instalar openssh nmap xorg-xauth xorg-xhost ipcalc
2 - Configurarlo para usar su puerto predeterminado y bloquear el acceso de las otras IP's ( Fijas ) para que no puedan acceder a mi equipo , las que usen Windows

3 - Conectarme a mi pc desde mi "Teléfono Inteligente" (Necesitamos un termino mas simple y corto en español :v) con Android
A ) Iniciar / Cerrar Aplicaciones Gráficas desde Android
B ) Poder Apagar el equipo de sobremesa desde el Android

Empiezo : Abro una Terminal

Código: Seleccionar todo

nano ~/.bashrc

Código: Seleccionar todo

#
# ~/.bashrc
#

# Archivo ~/.bashrc
# Hecho por "Inukaze" (De Venezuela
# Sitio Web de Inukaze-> http://inukaze.wordpress.com

# Ajustado y Adaptado segun varios sitios de Internet
# Para facilitar , la personalizacion del "prompt" de las terminales que usan bash

# Sitios Web , donde puedes encontrar más ejemplos :
# 1 -> http://www.askapache.com/linux/bash-power-prompt.html

function colores_en_terminal () {

        local CDU=$BLANCO               # Colores del Usuario Actual
        [ $UID -eq "0" ] && CDU=$ROJO   # Colores del SuperUsuario Root

        INV="\[\033[7m\]"               # Intercambiar Colores de Frente & Fondo
        NEGRITA='\033[01m'
        ADORNO='\342\234\227'
        REAJUSTE="\[\033[0m\]"          # Reinicio / Sin Color
        COLORIDO="\[\033[1m\]"          # Color de Alta Intensidad
        MARCADOR='\342\234\223'
        SUBRAYADO="\[\033[4m\]"

        # Colores Regulares
        GRIS='\[\033[1;30m\]'
        CYAN="\[\033[0;36m\]"
        AZUL="\[\033[0;34m\]"
        ROJO="\[\033[0;31m\]"
        VERDE="\[\033[0;32m\]"
        NEGRO="\[\033[0;30m\]"
        BLANCO="\[\033[0;37m\]"
        SINCOLOR="\[\033[00m\]"
        MAGENTA="\[\033[0;35m\]"
        MARRON="\[\033[00;33m\]"
        PURPURA="\[\033[00;35m\]"
        AMARILLO="\[\033[0;33m\]"

        # Colores Resaltados (Osea con Negrita)
        NEGRITA_ROJO="\[\033[1;31m\]"
        NEGRITA_AZUL="\[\033[1;34m\]"
        NEGRITA_CYAN="\[\033[1;36m\]"
        NEGRITA_VERDE="\[\033[01;32m\]"
        NEGRITA_NEGRO="\[\033[1;30m\]"
        NEGRITA_GRIS="\[\033[01;37m\]"
        NEGRITA_BLANCO="\[\033[1;37m\]"
        NEGRITA_MAGENTA="\[\033[1;35m\]"
        NEGRITA_PURPURA="\[\033[01;35m\]"
        NEGRITA_AMARILLO="\[\033[1;33m\]"


        # Colores del Primer Plano
        PP_ROJO="\[\033[31m\]"
        PP_AZUL="\[\033[34m\]"
        PP_CYAN="\[\033[36m\]"
        PP_NEGRO="\[\033[30m\]"
        PP_VERDE="\[\033[32m\]"
        PP_BLANCO="\[\033[37m\]"
        PP_MAGENTA="\[\033[35m\]"
        PP_AMARILLO="\[\033[33m\]"

        # Colores de Fondo
        CF_ROJO="\[\033[41m\]"
        CF_AZUL="\[\033[44m\]"
        CF_CYAN="\[\033[46m\]"
        CF_NEGRO="\[\033[40m\]"
        CF_VERDE="\[\033[42m\]"
        CF_BLANCO="\[\033[47m\]"
        CF_MAGENTA="\[\033[45m\]"
        CF_AMARILLO="\[\033[43m\]"

        # EXPLICACION :
        # PS1 -> Prompt Shell 1 -> En español seria algo como "Capa Inmediata 1"
        # Aqui vamos a definar unicamente la capa 1 de las 4 ó 5 que existen
        # 
        # Puedes usar comandos de Linux directamente en la Variable de 
        # Entorno del sistema llamada "PS1"
        # 
        # Aparte de ello existen varios codigos que puedes usar en el PS1=
        # Aqui te explicare algunos de ellos , para que puedas personalizar
        #
        # La mayoria de ellos son los mismos que al utilizar en la terminal
        # echo -e "Algun texto de prueba\nComo este por ejemplo"

        # Explicacion de Codigos :
        # \a -> Caracter ASCII 07 : "Campana"
        # \d -> La fecha en "Nombre del dia de Semana Mes Numero del Dia de Semana " (Ejemplo : "vie may 30")
        # \e -> Caracter ASCII 033 : "Escape"
        # \h -> Nombre de la primera parte del anfitrión en uso
        # \H -> Nombre del anfitrión
        # \j -> El numero actual de trabajos controlados actualmente por la consola
        # \l -> Nombre base del dispositivo terminal de la capa inmediata (puede ser del 1 al 4/5)
        # \n -> Salto de Linea
        # \r -> Retorno del carro
        # \s -> Nombre del interprete , comando `basename $0` (la parte siguiente de la barra final)
        # \t -> Hora Acutal en Formato de 24 Horas -> Hora:Minutos:Segundos
        # \T -> Hora Acutal en Formato de 12 Horas -> Hora:Minutos:Segundos
        # \@ -> Hora Acutal en Formato de 12 Horas -> Hora:Minutos: am/pm 
        # \A -> Hora Acutal en Formato de 24 Horas -> Hora:Minutos
        # \u -> Nombre de usuario del usuario actual
        # \v -> La version de Bash (Ejemplo : 2.0)
        # \V -> La version de Bash + Nivel de Parche (Ejemplo : 2.0.00) the release of bash, version + patch level
        # \w -> Muestra La Ruta Acortada Del Directorio de Trabajo Actual , en $HOME se abrevia con una tilde
        # \W -> Muestra La Ruta Completa Del Directorio de Trabajo Actual , en $HOME se abrevia con una tilde
        # \! -> el número de historia de este comando
        # \# -> el número de comando de este comando
        # \$ -> si el UID efectivo es 0, un #, de lo contrario un $
        # \\ -> barra invertida
        # \[ -> comenzar una secuencia de caracteres no imprimibles, que podría ser utilizado para incrustar una secuencia de control de terminal en el interprete
        # \] -> terminar una secuencia de caracteres no imprimibles
        #
        #
        # \nnn -> el carácter correspondiente al número octal nnn
        # en la terminal puedes usar el comando `man ascii` 
        # alli veras que una Columna dice "OCT" alli estan los valores octales
        # que puedes usar , por ejemplo para el caracter / el octal es 057
        #
        # Ejemplo(s)
        # PS1='[\[email protected]\h: \W] (\057) \$ '
        #
        #
        # \D -> Fecha y Hora Personalizada se usan los valores de "date --help"
        # por ejemplo %H:%M:%S (Hora:Minitos:Segundos) si quieres usar am/pm en 
        # lugar de usar "%S" para los segundos debes usar "%p" para "am/pm"
        #
        # Ejemplo(s) :
        # PS1="[\[email protected]\h: \W] (\D{%T %p) \$ "
        # PS1=(\D{%H:%M %p) "[\[email protected]\h: \W]  \$ "
        #
        # Tambien puedes meter comandos yo lo hago con () por ejemplo
        # PS1="$(date +%d-%m-%Y)@$(date +%I:%M%p)\n${NEGRITA_VERDE}$ ${SINCOLOR}"
        #
        # Si se fijan bien , en el ejemplo anterior use el comando date
        # obviamente que con las opciones , uno para la fecha y otro para la hora
        # el "@" arroba que esta de por medio es solo un adorno.
        #
        # NOTA FINAL : No se si te abras percatado de lo siguiente , es importante que se entienda
        # Primer Ejemplo -> PS1='[\[email protected]\h \W]\$ '
        # Segundo Ejemplo -> PS1="[\[email protected]\h \W]\$ "
        #
        # Posiblemente cuando los uses solo el primero o el segundo , no veas problema alguno
        # Pero cuando intentes usar por ejemplo
        #
        # Primero -> PS1='[${CYAN}\[email protected]\h ${NEGRITA_VERDE}\W]\$ ${SINCOLOR}'
        # Y te percates de que en la terminal , luce asi :
        #
        # [\[\033[0;36m\][email protected] \[\033[01;32m\]Linux]$ \[\033[00m\]
        #
        # La solucion es simplemente cambias las '' por "" , osea como en el segundo ejemplo
        # Te tenie que quedar asi
        # Segundo -> PS1="[${CYAN}\[email protected]\h ${NEGRITA_VERDE}\W]\$ ${SINCOLOR}"
        #
        # Esto es debido a que colocar texto entre ' es para un entrecomillado fuerte y literal
        # de esta manera las variables no pueden cambiar su valor al establecido previamente.
        #
        # Al colocarlo entre " es un entrecomillado más pasivo y las varibles usan sus valores

        [ -z "$PS1" ] && return

        alias ls='ls -p --color=auto'

        # EJEMPLOS :
        # PS1='[\[email protected]\h \W]\$ '
        # PS1="$NEGRITA_VERDE\u $AMARILLO[$ROJO\w$AMARILLO]$SINCOLOR "
        # PS1="$NEGRITA_VERDE\u $AMARILLO[$ROJO\w$AMARILLO] $NEGRITA_BLUE(\$(date +%H:%M:%S))$SINCOLOR: "
        # PS1="\n\e[1;37m[\e[0;32m\u\e[0;[email protected]\e[0;32m\h\e[1;37m]\e[1;37m[\e[0;31m\w\e[1;37m]\n$ \e[0m
        # PS1="\[\033[01;32m\]\D{%d-%m-%Y}@`(date +%I:%M%p)`\[\033[00m\]:\[\033[34m\]\w\[\033[00m\]\$ "
        # PS1="\n${SINCOLOR}${NEGRITA_AMARILLO}[Ubicacion Actual : \w]\n${CDU}${NEGRITA_GRIS}$(date +%d-%m-%Y)@$(date +%I:%M%p)\n${NEGRITA_VERDE}$ ${SINCOLOR}"
        # PS1="\n${SINCOLOR}${NEGRITA_AMARILLO}[Hora      : \@ ][Fecha : $(date +%d-%m-%Y) ]\n${NEGRITA_AZUL}[Usuario   : \u  ]\n${SINCOLOR}${NEGRITA_ROJO}[Ubicacion : \W ]${NEGRITA_VERDE}$ ${SINCOLOR}"
        # PS1="\n${SINCOLOR}${NEGRITA_AMARILLO}[Usuario   :   \u  ]${SINCOLOR}${NEGRITA_AZUL}\n[Hora      :  \@  ]\n[Fecha     : $(date +%d-%m-%Y) ]\n${NEGRITA_ROJO}[Ubicacion : \W ]\n${NEGRITA_VERDE}$ ${SINCOLOR}"
        # PS1="\n${SINCOLOR}[ ${NEGRITA_AMARILLO}\u ${SINCOLOR}${NEGRITA_AZUL}| $(date +%d-%m-%Y) | \@ ${SINCOLOR}]\n[${NEGRITA_ROJO}\W${SINCOLOR}]${NEGRITA_VERDE}$ ${SINCOLOR}"


                # Definiendo la variable de entorno PS1 :

                # Que yo uso actualmente
                PS1="\n${SINCOLOR}${NEGRITA_AMARILLO}[ \u ${SINCOLOR}${NEGRITA_AZUL}| $(date +%d-%m-%Y) | ${NEGRITA_ROJO}\@ ]${SINCOLOR}\n[\W]${NEGRITA_VERDE}$ ${SINCOLOR}"

                # El Predeterminado de ArchLinux, le cambie los '' por "" , debido a lo que explique más arriba.
                #PS1="[\[email protected]\h \W]\$ "

                # NOTA : Puedes guardar este archivo como por ejemplo ~/pruebash
                # y al ejecutar una consola / terminal , o como quieras llamarlo
                # puedes usar el comando :
                #
                # $ source ~/pruebash
                #
                # Asi veras como luce , esto tomara el ultimo valor asignado a PS1
    }

    colores_en_terminal

        # Establecer mi idioma en el Sistema :
        export LC_CTYPE=es_VE.UTF-8
        export LC_MESSAGES=es_VE.UTF-8
        export LC_ALL=es_VE.UTF-8

        # Establecer Puertos para Reproduccion Midi
        # Si Tienes Instalado y estas Usando " Timidity / Timidity++ " :
        export ALSA_OUTPUT_PORTS="128:0","128:1","128:2","128:3"

        #SSH Para usar programas de la session grafica :
        echo $DISPLAY &> /dev/null
        DISPLAY=:0.0
        set DISPLAY=:0.0
        export DISPLAY=$DISPLAY
Bueno como ya estableci mi archivo ~/.bashrc , puedes probrarlo con el comando

Código: Seleccionar todo

source ~/.bashrc
Bien ahora a instalar las apliaciones que usare

Código: Seleccionar todo

sudo pacman -S openssh xorg-xauth xorg-xhost xorg-xlogo
Intentare guardar la interfaz de red que uso para conectarme a internet

Código: Seleccionar todo

interface=$(ifconfig | awk '{print $1}' | head -n 1 | sed s'/.$//')
echo $interface 
enp#s#
Ahora borrare las claves de autentizadad que existan y creare unas nuevas


Código: Seleccionar todo

sudo rm /etc/ssh/ssh_host_*
sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
sudo ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
mkdir ~/.ssh
sudo chmod 700 ~/.ssh
rm ~/.ssh/ssh_host_*
rm ~/.ssh/{authorized_keys,id_dsa,id_dsa.pub,id_ecdsa,id_ecdsa.pub,id_rsa,id_rsa.pub,known_hosts}
cd ~/.ssh
ssh-keygen -t dsa -f ~/.ssh/ssh_host_dsa_key
ssh-keygen -t rsa -f ~/.ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f ~/.ssh/ssh_host_ecdsa_key
ssh-keygen -t dsa
ssh-keygen -t rsa
ssh-keygen -t ecdsa
cat id_rsa.pub >> authorized_keys
cat id_rsa >> [email protected]$HOSTNAME
En tu dispositivo android , crea en la memoria interna de tu equipo la carpeta ".ssh" y copiale los archivos "autorized_keys" y el que
te genero el comando "cat id_rsa >> [email protected]$HOSTNAME" , para luego importarlos

Respaldare la configuracion original para servidor

Código: Seleccionar todo

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
sudo chmod a-w /etc/ssh/sshd_config.original

Ahora a editar la configuracion del archivo del servidor , si usas un Router , tal vez debas usar los puertos 80 , o 443 , el ssh
usa predeterminamente el puerto 22 , asi que si usas ese , abrelo en tu router , si no , sugiero usar el 443 , que es el predeterminado para el protocolo "https" , o si no cualquier puerto arriba del puerto 1000 , ya que en puertos inferiores , se pueden considerar en su mayoria conexiones inseguras , excepto el 80 que es el predeterminado de http , y el 443 de https

Código: Seleccionar todo

sudo nano /etc/ssh/sshd_config

Código: Seleccionar todo

#	$OpenBSD: sshd_config,v 1.95 2015/04/27 21:42:48 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# The default requires explicit activation of protocol 1
#Protocol 2

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024

# Ciphers and keying
#RekeyLimit default none

# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#RSAAuthentication yes
#PubkeyAuthentication yes

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile	.ssh/authorized_keys

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no # pam does that
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
UsePrivilegeSeparation sandbox		# Default for new installations.
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# override default of no subsystems
Subsystem	sftp	/usr/lib/ssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#	X11Forwarding no
#	AllowTcpForwarding no
#	PermitTTY no
#	ForceCommand cvs server
Yo comente todas las lineas anteriores en el archivo sudo nano /etc/ssh/sshd_config , y le coloque esto al final

Código: Seleccionar todo

#############################
#                           #
#  Configuracion de Inukaze #
#                           #
#############################

#Conexion :
#Port 443                           # Puerto de conexion : 443 ( El Puerto 22 es el Predeterminado de SSH ) -> Este es para mayor seguridad

Port 22				    # Puerto de conexion : 22
TCPKeepAlive yes                    # Mantener la conexion TCP Activa : Si
AddressFamily any                   # Direcciones Familiares : Cualquiera
ListenAddress 192.168.1.2           # Escuchar la direccion : 192.168.1.2
#ListenAddress 192.168.1.3	    # Escuchar la direccion : 192.168.1.3
ClientAliveInterval 60              # Enviar un paquete a cada 60 segundos para manterner la conexion activa
ClientAliveCountMax 24              # Desconectar del cliente despues de 24 intentos a cada 60 segundos

#Seguridad
UsePAM yes                          # Usar P.A.M ( Pluggable Authentication Modules / Módulos de autentificación conectables )
MaxSessions 3                       # Sesiones maximas : 3
MaxAuthTries 3                      # Intentos maximos de Autenticacion : 3
StrictModes yes                     # Modo Estricto : si
PermitRootLogin no                  # Permitir el acceso del super usuario : no
RSAAuthentication yes               # Autenticacion por llave rsa : si
PubkeyAuthentication yes            # Autenticacion por archivo de llave publica : si
#PasswordAuthentication no          # Autenticacion por contraseña : no
UsePrivilegeSeparation yes          # Usar Privilegios de Separacion : si
AllowUsers Inukaze inukaze          # Permitir a los usuarios : Inukaze inukaze


#Llaves del sistema
HostKey         /etc/ssh/ssh_host_key       # Protocolo 1
HostKey         /etc/ssh/ssh_host_rsa_key   # Protocolo 2
HostKey         /etc/ssh/ssh_host_dsa_key   # Protocolo 2

#Llaves de usuario
HostKey             ssh_host_key            # Protocolo 1
HostKey             ssh_host_rsa_key        # Protocolo 2
HostKey             ssh_host_dsa_key        # Protocolo 2
AuthorizedKeysFile  ssh/authorized_keys     # Llaves Autorizadas

# Sopote para abrir aplicaciones graficas desde el Androide :

X11Forwarding		yes	# Permitir el redireccionamiento grafico
X11DisplayOffset 	0  	# Session Grafica ?
PrintMotd 		no	# Monstrar el "Mensaje del Dia"?
PrintLastLog 		no	# Mostrar el ultimo log 
AllowAgentForwarding	yes	# Permitir el redireccionamiento de Agente
X11UseLocalhost		yes	# Permitir al redireccionamiento al sistema grafico local
Ahora modifico el archivo de sshd con el cual inicia por systemd
no inicien "sshd.service" por que ese bloquea este y no inicia como se espera

Código: Seleccionar todo

sudo nano /etc/systemd/system/sshd.socket

Código: Seleccionar todo

[Unit]
Conflicts=sshd.service
Wants=sshdgenkeys.service

[Socket]
ListenStream=192.168.1.2:22
FreeBind=true
Accept=yes

[Install]
WantedBy=sockets.target
Ahora es el momento , que en tu Android instalas
Opcion 1 ) SSH Client
Opcion 2 ) VXConnectBot


y como ya debes tener los archivos copiados desde tu pc del tu directorio ~/.ssh , los que mencione mas arriba, abre la aplicacion en tu android , presiona el boton "Menu" -> "Administrar clave pública" , Presiona el boton de "Menu -> Importar" , y ahora busca el archivo "[email protected]$HOSTNAME" , y luego presiona el Boton de "Menu -> Generar" , te pedira que muevas tu(s) dedo(s) aleatoriamente para generar una clave.

Listo ahora agrega tu pc de escritorio a la lista de maquina , usando la casilla de entrada de texto en la parte inferior
en mi caso
Ahora a Desactivarlo (el sshd del pc ) y probrar el sshd en modo demonio , puro

Código: Seleccionar todo

sudo systemctl stop sshd.socket -f ; sudo systemctl disable sshd.socket -f
sudo systemctl stop sshd -f ; sudo systemctl disable sshd.socket -f
sudo systemctl stop ssh -f ; systemctl disable ssh -f
sudo /usr/bin/sshd -d
Una vez que confirmas que funciona

Código: Seleccionar todo

$ sudo /usr/bin/sshd -d
[sudo] password for inukaze: 
debug1: sshd version OpenSSH_6.9, OpenSSL 1.0.2d 9 Jul 2015
debug1: private host key #0: RSA1 SHA256:wSI...
debug1: private host key #1: ssh-rsa SHA256:I28...
debug1: private host key #2: ssh-dss SHA256:RY6...
debug1: rexec_argv[0]='/usr/bin/sshd'
debug1: rexec_argv[1]='-d'
Set /proc/self/oom_score_adj from 0 to -1000
debug1: Bind to port 22 on 192.168.1.2.
Server listening on 192.168.1.2 port 22.
Primero pruebas conectarte desde tu propio pc

Código: Seleccionar todo

ssh -p 22 192.168.1.2 -vv
Si te pregunta que si deseas seguir conectandote , le dices que si

Ahora Conectate desde tu dispositivo android :D , y listo ya sabes que funciona

Activarlo , debe ser en este orden o no funciona

Metodo 1 :

Código: Seleccionar todo

sudo systemctl stop ssh -f ; systemctl disable ssh -f
sudo systemctl stop sshd.socket -f ; sudo systemctl disable sshd.socket -f
sudo systemctl enable sshd.socket -f ; sudo systemctl start sshd.socket -f

Metodo 2 :

Código: Seleccionar todo

sudo systemctl enable sshd -f ; sudo systemctl start sshd -f
sudo systemctl enable sshd.socket -f ; sudo systemctl start sshd.socket -f
sudo systemctl enable ssh -f ; sudo systemctl start ssh -f
ssh -p 22 192.168.1.2 -vv

Código: Seleccionar todo

sudo nano /usr/bin/xssh

Código: Seleccionar todo

#!/bin/sh
#echo 'DISPLAY='"$DISPLAY"''
xssh=$(set "DISPLAY=:0.0")
xssh=$(export "DISPLAY=:0.0")
$xssh
set 'DISPLAY=:0.0'
export 'DISPLAY=:0.0'


echo
echo "Sesion Grafica Detectada"
echo 'se estableció "DISPLAY'"$DISPLAY"'"'

Código: Seleccionar todo

sudo chmod a+o+x /usr/bin/xssh
===============================================================================================
Cosas Aparte , Solo por si a alguien más le funciona , a parte de a mi mismo

Configurar IP Fija :

Código: Seleccionar todo

sudo touch /etc/conf.d/[email protected]$interface

Código: Seleccionar todo

address=192.168.1.2
netmask=32
broadcast=192.168.1.255
gateway=192.168.1.1

Código: Seleccionar todo

sudo touch /etc/systemd/system/[email protected]$interface.service

Código: Seleccionar todo

[Unit]
Description=Network connectivity (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/[email protected]%i

ExecStart=/usr/bin/ip link set dev %i up
ExecStart=/usr/bin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev %i
ExecStart=/usr/bin/ip route add default via ${gateway}

ExecStop=/usr/bin/ip addr flush dev %i
ExecStop=/usr/bin/ip link set dev %i down

[Install]
WantedBy=multi-user.target
Ahora a habilitarlo e iniciarlo :

Código: Seleccionar todo

sudo systemctl enable [email protected]$interface.service -f
systemctl start [email protected]$interface.service -f
Hacerlo un "Anfitrion / Host" Permitido

Código: Seleccionar todo

sudo nano /etc/hosts.allow

Código: Seleccionar todo

sshd:192.168.1.2
o si bien quieres permitirlo todo

Código: Seleccionar todo

sshd:ALL
Sugiero guardar esta pagina , con un nombre sencillo , en formato HTML , ya que sugiero reiniciar
pero si en caso de reiniciar no funciona , recomiendo deshacer los cambios manualmente con los
siguientes comandos :

Deshacer IP Fija Manual :

Código: Seleccionar todo

interface=$(ifconfig | awk '{print $1}' | head -n 1 | sed s'/.$//')
sudo systemctl stop [email protected]$interface.service -f
sudo systemctl disable [email protected]$interface.service -f
sudo rm /etc/systemd/system/[email protected]$interface.service
sudo rm /etc/conf.d/[email protected]$interface
Ahora vuelve a reiniciar , para deshacer los cambios de IP Fija Manual

Responder