2 votos

Configurar sshd para servir diferentes shell basado en `host`.

Quiero que mi sshd local para servir a diferentes shell, basado en la host .

Ejemplo:

  • ssh user@hostname1 -> get's bash
  • ssh user@hostname2 -> get's fish

¿Es posible y, en caso afirmativo, cómo?

0 votos

Sus ejemplos no se ajustan a la pregunta. E a.ples tienen dos servidores la pregunta sólo tiene uno

2voto

slm Puntos 118

No soy capaz de encontrar una manera de lograr lo que pides directamente con sshd y las opciones disponibles en man sshd_config o man sshd .

Método #1 vía cliente ssh

El primer método que se me ocurre es bastante sencillo. Puedes hacerlo directamente con ssh .

$ ssh -t user@someserver bash

-o-

$ ssh -t user@someserver dash

Ejemplos

bash

$ ssh -t manny.bub.lan -l manny bash
$ ps | grep $$
31691 pts/0    00:00:00 bash

guión

$ ssh -t manny.bub.lan -l manny dash
$ ps | grep $$
31730 pts/0    00:00:00 dash

csh

$ ssh -t manny.bub.lan -l manny csh
manny:~% ps | grep $$
 1687 pts/0    00:00:00 csh

pescado

$ ssh -t manny.bub.lan -l manny fish
Welcome to fish, the friendly interactive shell
manny@manny ~> ps | grep $$_
fish: $$ is not the pid. In fish, please use %self.
ps | grep $$
           ^
manny@manny ~> ps | grep %self
 4218 pts/0    00:00:00 fish

Método nº 2 mediante alias

Podrías aprovechar el método anterior en #1, y construir alias como estos:

$ alias sshmanny1="ssh -t manny@manny-rei210-2.bub.lan bash"
$ alias sshmanny1="ssh -t manny@manny-rei210-2.bub.lan fish"

Entonces úsalos así:

$ sshmanny1
manny@manny:~$ exit
exit
Shared connection to manny.bub.lan closed.

$ sshmanny2
Welcome to fish, the friendly interactive shell
manny@manny ~> exit
Shared connection to manny.bub.lan closed.

Método #3 ~/.ssh/config

El tercer método que fui capaz de encontrar sería construir configuraciones que pueden hacer esto en el lado del cliente de su conexión SSH, en lugar de en el servidor a través de SSHD.

$ cat ~/.ssh/config
Host manny1
    HostName manny.bub.lan
    RemoteCommand bash
    RequestTTY force
    User manny

Host manny2
    HostName manny.bub.lan
    RemoteCommand fish
    RequestTTY force
    User manny 

Ahora cuando quieras conectarte lo harías así:

$ ssh manny1
manny@manny:~$ exit
exit
Shared connection to manny.bub.lan closed.

$ ssh manny2
Welcome to fish, the friendly interactive shell
manny@manny ~> exit
Shared connection to manny.bub.lan closed.

Referencias

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X