sshにユーザーにプロンプ​​トを表示させる


11

login_name引数なしでsshを実行すると、ローカルユーザー名がlogin_nameとして自動的に使用されます。例えば:

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

sshにlogin_nameの入力を強制する方法はありますか?

ssh 

回答:


10

OpenSSHについて話している場合、答えはノーです(ソースを確認できます)。@cnicutarが指摘したように、次の行ssh user@host.ssh/config沿ってエイリアスを使用または構成できます。

Host meh
  HostName foo
  User bar

その後ssh meh


これは私が探していた答えです。スクリプトで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(PUT export PATH=$HOME/bin:$PATHであなたの~/.bashrc/etc/bashrcsource ~/.bashrcsource /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

Userを無効なものに設定して、それが何をするのかを見ることができます。


私は楽しみのためにこれを試しました:[ 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の呼び出しでユーザー名を渡します。

以下が実行さuptimecontosso.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

rootは任意のユーザー名に置き換えることができます。これにより、サーバーは、希望するユーザー名のパスワードを要求します。


これは本当に質問に答えません。あなたが提案する方法に加えて、4年前の別の回答ですでに提案されています。
カスペルド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.