Ssh'yi kullanıcı istemeye zorla


11

Ssh'yi bir login_name bağımsız değişkeni olmadan çalıştırdığınızda, yerel kullanıcı adınızı otomatik olarak login_name olarak kullanır. Örneğin:

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

Ssh dosyasını login_name isteminde bulunmaya zorlamanın bir yolu var mı?

ssh 

Yanıtlar:


10

OpenSSH hakkında konuşuyorsanız, cevap hayırdır ( kaynağı kontrol edebilirsiniz ). @Cnicutar tarafından işaret edildiği gibi, ssh user@hosttakma adları .ssh/configaşağıdaki satırlarda kullanabilir veya yapılandırabilirsiniz .

Host meh
  HostName foo
  User bar

ve sonra ssh meh.


Aradığım cevap buydu. Bir komut dosyasında ssh kullanıyorum, bu yüzden sadece arama yapmadan önce kullanıcı adını kendim sorabilirim, sadece ssh beni iş kurtarmak için bir yol olup olmadığını görmek istedim.

4

Yana sshistemi bir kullanıcı adı zorlama için bir seçenek yoktur; ~/bindizininizde aşağıdaki komut dosyasını oluşturabilir ve adlandırabilirsiniz 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]");
    }
}

Ardından, komut dosyasını yürütülebilir yapın:

chmod 755 ~/bin/ssh

Elinizde olduğundan emin olun $HOME/binsizin de PATH(koymak export PATH=$HOME/bin:$PATHiçinde senin ~/.bashrcveya /etc/bashrcve source ~/.bashrcya source /etc/bashrc).

Ardından, istediğiniz gibi çalıştırın ssh:

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

0

Ben öyle düşünmüyorum - eğer olsaydı, .sshconfig aracılığıyla olur

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

Kullanıcıyı ne yaptığını görmek için yasadışı bir şeye ayarlamayı deneyebilirsiniz.


Bunu sadece eğlence için denedim: [ 12:56 Jonathan@MacBookPro ~ ]$ ssh /dev/null@somehostaslında çalışıyor ..: /dev/null@somehost's password: -> Permission denied, please try again.. Tabii ki, ana bilgisayarlarda /var/log/securegösterir sshd[21936]: pam_sepermit(sshd:auth): Cannot determine the user's nameve sshd[21936]: pam_succeed_if(sshd:auth): error retrieving information about user.
chown

0

Bu @ meh'in cevabının bir uyarlamasıdır.

Bir kabuk komut dosyasında, kullanıcı adını isteriz.

Kullanıcı adını sonraki ssh çağrısında geçiriyoruz.

Aşağıdaki çalışır uptimeüzerinde contosso.com:

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

İşte bir örnek çıktı:

$ ./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

Ben de aynı sorunu yaşıyordum. Cmd kullanıyordum

ssh "IP address"

ssh 000.000.000.0

Ve hemen var olmayan bir kullanıcının şifresini istiyordu (Bilgisayarımın Adı).

gerçekten basit bir düzeltme sadece bu komutu kullanın:

ssh root@"IP address"

ssh root@000.000.000.0

Kökü istediğiniz herhangi bir kullanıcı adıyla değiştirebilirsiniz. Bu, sunucunun istediğiniz kullanıcı adı için parola girmesini ister.


Bu soruya gerçekten cevap vermiyor. Önerdiğiniz yöntemin yanı sıra, dört yıl önce başka bir cevapta önerilmiştir.
kasperd
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.