उपयोगकर्ता के लिए संकेत करने के लिए बल ssh


11

जब आप ssh को एक login_name तर्क के बिना चलाते हैं, तो यह स्वतः ही आपके स्थानीय यूज़रनेम को login_name के रूप में उपयोग करता है। उदाहरण के लिए:

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

क्या login_name के लिए ssh को बाध्य करने का कोई तरीका है?

ssh 

जवाबों:


10

यदि आप OpenSSH के बारे में बात कर रहे हैं, तो उत्तर नहीं है (आप स्रोत की जांच कर सकते हैं )। @Cnicutar द्वारा उठाई बाहर के रूप में, आप उपयोग कर सकते ssh user@hostमें कॉन्फ़िगर उपनाम या .ssh/configकी तर्ज पर

Host meh
  HostName foo
  User bar

और फिर ssh meh


यह वह उत्तर है जिसकी मुझे तलाश थी। मैं स्क्रिप्ट में ssh का उपयोग कर रहा हूं, इसलिए मैं केवल कॉल करने से पहले उपयोगकर्ता को उनके नाम के लिए तुरंत संकेत दे सकता हूं, मैं सिर्फ यह देखना चाहता था कि क्या कोई ऐसा तरीका था जिससे मैं ssh को बचा सकता था।

4

चूंकि sshउपयोगकर्ता नाम प्रॉम्प्ट के लिए मजबूर करने का विकल्प नहीं है; आप अपनी ~/binनिर्देशिका में निम्न स्क्रिप्ट बना सकते हैं और उसे नाम दे सकते हैं 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]");
    }
}

फिर, स्क्रिप्ट को निष्पादन योग्य बनाएं:

chmod 755 ~/bin/ssh

सुनिश्चित करें कि आपने $HOME/binअपने में PATH(पुट export PATH=$HOME/bin:$PATHमें अपने ~/.bashrcया /etc/bashrcऔर source ~/.bashrcया source /etc/bashrc)।

इसके बाद, इसे चलाएं ssh:

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

0

मुझे ऐसा नहीं लगता - अगर यह होता तो यह .sshconfig के माध्यम से होता

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

आप उपयोगकर्ता को यह देखने के लिए अवैध रूप से कुछ सेट करने का प्रयास कर सकते हैं कि वह क्या करता है।


मैंने सिर्फ मनोरंजन के लिए यह कोशिश की: [ 12:56 Jonathan@MacBookPro ~ ]$ ssh /dev/null@somehostवास्तव में काम करता है ..: /dev/null@somehost's password: -> Permission denied, please try again.। बेशक, मेजबानों में /var/log/secureयह दिखाता है sshd[21936]: pam_sepermit(sshd:auth): Cannot determine the user's nameऔर sshd[21936]: pam_succeed_if(sshd:auth): error retrieving information about user
chown

0

यह @ meh के उत्तर का अनुकूलन है।

एक शेल स्क्रिप्ट में, हम उपयोगकर्ता नाम का संकेत देते हैं।

हम बाद के कॉल में ssh को यूजरनेम पास करते हैं।

निम्नलिखित uptimeपर चलता है contosso.com:

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

यहाँ एक नमूना आउटपुट है:

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

तो मैं एक ही मुद्दा रहा था। मैं cmd ​​का उपयोग कर रहा था

ssh "IP address"

ssh 000.000.000.0

और यह तुरंत उस उपयोगकर्ता के लिए पासवर्ड के लिए पूछ रहा था जो मौजूद नहीं था (मेरा कंप्यूटर का नाम)।

वास्तव में सरल फिक्स इसके बजाय केवल इस कमांड का उपयोग करें:

ssh root@"IP address"

ssh root@000.000.000.0

आप किसी भी उपयोगकर्ता नाम के साथ रूट को बदल सकते हैं। यह सर्वर आपको उस उपयोगकर्ता के पासवर्ड के लिए संकेत करने के लिए प्रेरित करेगा, जो आपकी इच्छा है।


यह वास्तव में सवाल का जवाब नहीं देता है। आपके द्वारा सुझाई गई विधि के अलावा चार साल पहले एक और उत्तर में सुझाव दिया जा चुका है।
कास्परड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.