Quando si esegue ssh senza un argomento login_name, utilizza automaticamente il nome utente locale come login_name. per esempio:
cogan@localhost$ ssh myserver
cogan@myserver's password:
C'è un modo per forzare ssh a richiedere login_name?
Quando si esegue ssh senza un argomento login_name, utilizza automaticamente il nome utente locale come login_name. per esempio:
cogan@localhost$ ssh myserver
cogan@myserver's password:
C'è un modo per forzare ssh a richiedere login_name?
Risposte:
Se stai parlando di OpenSSH, la risposta è no (puoi controllare la fonte ). Come sottolineato da @cnicutar, è possibile utilizzare ssh user@hosto configurare gli alias .ssh/configlungo le linee di
Host meh
HostName foo
User bar
e poi ssh meh.
Dal momento sshche non ha un'opzione per forzare una richiesta nome utente; puoi creare il seguente script nella tua ~/bindirectory e nominarlo 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]");
}
}
Quindi, rendere eseguibile lo script:
chmod 755 ~/bin/ssh
Assicurati di averlo $HOME/binnel PATH(inserisci il export PATH=$HOME/bin:$PATHtuo ~/.bashrco /etc/bashrce source ~/.bashrco source /etc/bashrc).
Quindi eseguilo come faresti ssh:
[ 12:49 jon@hozbox ~ ]$ ssh localhost
Enter your username: bob
bob@localhost's password:
[ 12:50 bob@hozbox /home/bob ]$
Non credo - se fosse, sarebbe attraverso .sshconfig
http://linux.die.net/man/5/ssh_config
Puoi provare a impostare Utente su qualcosa di illegale per vedere cosa fa.
[ 12:56 Jonathan@MacBookPro ~ ]$ ssh /dev/null@somehostfunziona davvero ..: /dev/null@somehost's password: -> Permission denied, please try again.. Certo, nei padroni di casa /var/log/securemostra sshd[21936]: pam_sepermit(sshd:auth): Cannot determine the user's namee sshd[21936]: pam_succeed_if(sshd:auth): error retrieving information about user.
Questo è un adattamento della risposta di @ meh.
In uno script di shell, viene richiesto il nome utente.
Passiamo il nome utente in una chiamata successiva a ssh.
Funziona uptimesu contosso.com:
sshhost=contosso.com
read -p "$sshhost user [$USER]: " sshuser
[ "$sshuser" == "" ] && sshuser=$USER
ssh $sshuser@$sshhost uptime
Ecco un esempio di output:
$ ./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
$
Quindi stavo avendo lo stesso problema. Stavo usando cmd
ssh "IP address"
ssh 000.000.000.0
E chiedeva immediatamente la password per un utente che non esisteva (Nome del mio computer).
soluzione davvero semplice basta usare questo comando invece:
ssh root@"IP address"
ssh root@000.000.000.0
È possibile sostituire root con qualsiasi nome utente desiderato. Ciò farà sì che il server richieda la password per il nome utente desiderato.