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?
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?
Respuestas:
Si está hablando de OpenSSH, la respuesta es no (puede verificar la fuente ). Como señaló @cnicutar, puede usar ssh user@host
o configurar alias a lo .ssh/config
largo de las líneas de
Host meh
HostName foo
User bar
y luego ssh meh
.
Dado ssh
que no tiene una opción para forzar una solicitud de nombre de usuario; puede crear el siguiente script en su ~/bin
directorio 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/bin
en su PATH
(poner export PATH=$HOME/bin:$PATH
en su ~/.bashrc
o /etc/bashrc
y source ~/.bashrc
o 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 ]$
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.
[ 12:56 Jonathan@MacBookPro ~ ]$ ssh /dev/null@somehost
realidad funciona ...: /dev/null@somehost's password:
-> Permission denied, please try again.
. Por supuesto, en los hosts /var/log/secure
se muestra sshd[21936]: pam_sepermit(sshd:auth): Cannot determine the user's name
y sshd[21936]: pam_succeed_if(sshd:auth): error retrieving information about user
.
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 uptime
en 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
$
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.