Forza ssh a richiedere all'utente


11

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?

ssh 

Risposte:


10

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.


Questa è la risposta che stavo cercando. Sto usando ssh in uno script, quindi posso solo chiedere all'utente il proprio nome prima di effettuare la chiamata, volevo solo vedere se c'era un modo in cui avrei potuto ssh salvarmi il lavoro.

4

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 ]$

0

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.


Ho appena provato questo per divertimento: [ 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.
vestito l'

0

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
$

-1

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.


Questo non risponde davvero alla domanda. Oltre al metodo che suggerisci è già stato suggerito in un'altra risposta quattro anni fa.
Kasperd,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.