[server] ssh가 사용자에게 프롬프트하도록 강제

login_name 인수없이 ssh를 실행하면 자동으로 로컬 사용자 이름을 login_name으로 사용합니다. 예를 들면 다음과 같습니다.

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

ssh가 login_name을 요구하도록 강제하는 방법이 있습니까?



답변

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


답변

나는 그렇게 생각하지 않습니다-그렇다면 .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는 원하는 사용자 이름으로 바꿀 수 있습니다. 그러면 서버가 원하는 사용자 이름에 대한 암호를 묻는 메시지를 표시합니다.


답변