Forzar ssh para solicitar al usuario


11

Cuando ejecuta ssh sin un argumento login_name, automáticamente usa su nombre de usuario local como login_name. por ejemplo:

cogan@localhost$ ssh myserver
cogan@myserver's password: 

¿Hay alguna manera de forzar a ssh a solicitar login_name?

ssh 

Respuestas:


10

Si está hablando de OpenSSH, la respuesta es no (puede verificar la fuente ). Como señaló @cnicutar, puede usar ssh user@hosto configurar alias a lo .ssh/configlargo de las líneas de

Host meh
  HostName foo
  User bar

y luego ssh meh.


Esta es la respuesta que estaba buscando. Estoy usando ssh en una secuencia de comandos, por lo que puedo pedirle al usuario su nombre antes de hacer la llamada, solo quería ver si había alguna manera de que ssh pudiera ahorrarme el trabajo.

4

Dado sshque no tiene una opción para forzar una solicitud de nombre de usuario; puede crear el siguiente script en su ~/bindirectorio y nombrarlo ssh:

#!/usr/bin/perl

my $user_at_address = $ARGV[0];
my @u_a = split(/@/, $user_at_address);

if (defined $u_a[1])
{
    if ( $^O == 'linux' )
    {
        exec ("/usr/bin/ssh $u_a[0]\@$u_a[1]");
    }
    if ( $^O == 'solaris' )
    {
        exec ("/usr/local/bin/ssh $u_a[0]\@$u_a[1]");
    }
}
else
{
    print "Enter your username: ";
    my $username = <STDIN>;
    chomp ( $username );
    if ( $^O == 'linux' )
    {
        exec ("/usr/bin/ssh $username\@$u_a[0]");
    }
    if ( $^O == 'solaris' )
    {
        exec ("/usr/local/bin/ssh $username\@$u_a[0]");
    }
}

Luego, haga que el script sea ejecutable:

chmod 755 ~/bin/ssh

Asegúrese de tener $HOME/binen su PATH(poner export PATH=$HOME/bin:$PATHen su ~/.bashrco /etc/bashrcy source ~/.bashrco source /etc/bashrc).

Luego, ejecútelo como lo haría ssh:

[ 12:49 jon@hozbox ~ ]$ ssh localhost
Enter your username: bob
bob@localhost's password:
[ 12:50 bob@hozbox /home/bob ]$

0

No lo creo, si lo fuera, sería a través de .sshconfig

http://linux.die.net/man/5/ssh_config

Puede intentar configurar el Usuario en algo ilegal para ver qué hace.


Acabo de probar esto por diversión: en [ 12:56 Jonathan@MacBookPro ~ ]$ ssh /dev/null@somehostrealidad funciona ...: /dev/null@somehost's password: -> Permission denied, please try again.. Por supuesto, en los hosts /var/log/securese muestra sshd[21936]: pam_sepermit(sshd:auth): Cannot determine the user's namey sshd[21936]: pam_succeed_if(sshd:auth): error retrieving information about user.
Chown

0

Esta es una adaptación de la respuesta de @ meh.

En un script de shell, solicitamos el nombre de usuario.

Pasamos el nombre de usuario en una llamada posterior a ssh.

Los siguientes carreras uptimeen contosso.com:

sshhost=contosso.com
read -p "$sshhost user [$USER]: " sshuser
[ "$sshuser" == "" ] && sshuser=$USER
ssh $sshuser@$sshhost uptime

Aquí hay una muestra de salida:

$ ./run-script.sh 
contosso.com user [stephen]: billgates
billgates@contosso.com password:
 10:57:12 up 71 days,  1:01,  2 users,  load average: 0.00, 0.04, 0.05
$

-1

Entonces estaba teniendo el mismo problema. Estaba usando cmd

ssh "IP address"

ssh 000.000.000.0

Y estaba pidiendo de inmediato la contraseña de un usuario que no existía (Nombre de mi computadora).

solución realmente simple, solo use este comando en su lugar:

ssh root@"IP address"

ssh root@000.000.000.0

Puede reemplazar root con cualquier nombre de usuario que desee. Esto hará que el servidor le solicite la contraseña del nombre de usuario que desea.


Esto realmente no responde la pregunta. Además, el método que sugiere ya se sugirió en otra respuesta hace cuatro años.
kasperd
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.