ব্যবহারকারীর জন্য প্রম্পট করতে ssh জোর করে


11

আপনি যখন লগইন_নাম যুক্তি ছাড়াই ssh চালান, এটি স্বয়ংক্রিয়ভাবে আপনার স্থানীয় ব্যবহারকারীর নাম লগইন_নাম হিসাবে ব্যবহার করে। উদাহরণ স্বরূপ:

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

লগইন_নামের জন্য অনুরোধ করার জন্য এসএসএসকে বাধ্য করার কোনও উপায় আছে কি?

ssh 

উত্তর:


10

আপনি যদি ওপেনএসএইচএইচ সম্পর্কে কথা বলছেন তবে উত্তরটি হ'ল না (আপনি উত্সটি পরীক্ষা করতে পারেন )। @ স্নিকুতার দ্বারা চিহ্নিত হিসাবে, আপনি এর লাইনের সাথে সাথে উপন্যাসগুলি ব্যবহার ssh user@hostবা কনফিগার করতে পারেন.ssh/config

Host meh
  HostName foo
  User bar

এবং তারপর ssh meh


এই উত্তরটি আমি খুঁজছিলাম। আমি স্ক্রিপ্টে এসএসএস ব্যবহার করছি, তাই আমি কল করার আগে আমি কেবল তাদের নামের জন্য ব্যবহারকারীকে প্রম্পট করতে পারি, আমি কেবল দেখতে চেয়েছিলাম যে আমার কাজটি বাঁচাতে পারে এমন কোনও উপায় আছে কিনা।

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

আমি মনে করি না - যদি এটি হয় তবে এটি। এসএসকনফিগের মাধ্যমে হত

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

এটি @ মেহের উত্তরের একটি অভিযোজন।

শেল স্ক্রিপ্টে আমরা ব্যবহারকারীর নাম প্রম্পট করি।

আমরা পরবর্তী কক্ষে 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

সুতরাং আমি একই সমস্যা ছিল। আমি সিএমডি ব্যবহার করছিলাম

ssh "IP address"

ssh 000.000.000.0

এবং এটি অবিলম্বে এমন কোনও ব্যবহারকারীর জন্য পাসওয়ার্ডের জন্য জিজ্ঞাসা করছিল যা (আমার কম্পিউটারের নাম) নেই।

সত্যিই সহজ ফিক্স পরিবর্তে এই কমান্ডটি ব্যবহার করুন:

ssh root@"IP address"

ssh root@000.000.000.0

আপনি যে কোনও ব্যবহারকারীর নাম দিয়ে রুট প্রতিস্থাপন করতে পারেন। এটি সার্ভারের দ্বারা আপনার পছন্দসই ব্যবহারকারীর নামটির পাসওয়ার্ড জানতে চাইবে।


এটি আসলে প্রশ্নের উত্তর দেয় না। আপনার প্রস্তাবিত পদ্ধতিটি ছাড়াও চার বছর আগে অন্য উত্তরে ইতিমধ্যে পরামর্শ দেওয়া হয়েছে।
ক্যাস্পারড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.