Когда вы запускаете ssh без аргумента login_name, он автоматически использует ваше локальное имя пользователя в качестве имени входа. например:
cogan@localhost$ ssh myserver
cogan@myserver's password:
Есть ли способ заставить ssh запрашивать имя_пользователя?
Если вы говорите об OpenSSH, ответ - нет (вы можете проверить источник). Как указано @cnicutar, вы можете использовать ssh user@host
или настроить псевдонимы в .ssh/config
по линиям
Host meh
HostName foo
User bar
а потом ssh meh
.
поскольку 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 ]$
Не думаю - если бы было, то через .sshconfig
http://linux.die.net/man/5/ssh_config
Вы можете попробовать настроить пользователя на что-то незаконное, чтобы увидеть, что он делает.
Это адаптация ответа @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
$
Итак, у меня была такая же проблема. Я использовал cmd
ssh "IP address"
ssh 000.000.000.0
И он немедленно запрашивал пароль для пользователя, которого не было (Имя моего компьютера).
действительно простое исправление, просто используйте вместо этого эту команду:
ssh root@"IP address"
ssh root@000.000.000.0
Вы можете заменить root любым именем пользователя. Это заставит сервер запросить пароль для желаемого имени пользователя.