생성된 공개키를 이용해 원격 서버에 로그인하세요.

생성된 공개키를 이용해 원격 서버에 로그인하세요.

일부 폴더를 복사하기 위해 원격 호스트에 로그인하는 데 사용하는 zsh 스크립트가 있습니다. 우회하려는 로컬 호스트의 비밀번호를 매번 묻는 메시지가 표시됩니다. 그렇지 않으면 비밀번호를 여러 번 입력해야 합니다.

나는 다음 튜토리얼을 따랐습니다. https://www.thegeekstuff.com/2008/06/perform-ssh-and-scp-without-entering-password-on-openssh/

한 번 작동했지만 작동이 멈췄습니다. 아래 단계를 따랐고(그리고 여러 번 다시 따랐지만) 이제 더 이상 작동하지 않습니다.

[local-host]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):<Hit enter>
Enter passphrase (empty for no passphrase): <Enter your passphrase here>
Enter same passphrase again:<Enter your passphrase again>
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is:
31:3a:5d:dc:bc:81:81:71:be:31:2b:11:b8:e8:39:a0 jsmith@local-host

그런 다음 로컬 호스트에서 공개 키의 내용을 복사하여 /home/jsmith/.ssh/authorized_keys원격 호스트에 붙여 넣고 다음을 실행했습니다.

[remote-host]$ chmod 755 ~/.ssh
[remote-host]$ chmod 644 ~/.ssh/authorized_keys

그런데 다시 로그인을 하려고 하면,

[local-host]$ ssh  jsmith remote-host

그러나 다음 메시지가 없습니다.

Enter passphrase for key '/home/jsmith/.ssh/id_rsa': <Enter your passphrase here>
Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102
No mail.

알겠어요:

jsmith remote-host's password:

내가 뭘 잘못했나요?

편집하다

귀하의 답변과 의견에 진심으로 감사드립니다. 하나씩 해결하도록 노력하겠습니다.

  • 에 대해서는 -l실제로 사용하지는 않았지만 사용했습니다.ssh jsmith@remote-host
  • 다음 명령을 실행하면 다음 결과가 출력됩니다.
[local-host]$ eval $(ssh-agent -s)
Agent pid 96546
[local-host]$ env | grep SSH
SSH_AUTH_SOCK=/var/folders/jq/yyp9q2fs1z5780k9l1_2ph4r0000gn/T//ssh-9ew9mjQCJWFK/agent.96545
SSH_AGENT_PID=96546

편집 2

그런 다음 다음을 시도했습니다.

[local-host]$ ssh-add .ssh/id_rsa
Enter passphrase for .ssh/id_rsa:
Bad passphrase, try again for .ssh/id_rsa:

편집 3

좋습니다. 원격 시스템과 로컬 시스템의 전체 권한 트리는 다음과 같습니다.

/var/services/homes/user01/.ssh/

각 브랜치의 권한은 다음과 같습니다( ls -ld <directory>ls -la <file>명령 사용(아래에서 위로):

원격 시스템의 경우:

drwxr-xr-x 1 user01 users 0 Oct  3 16:44 .ssh
drwxrwxrwx+ 1 user01 users 90 Oct
lrwxrwxrwx 1 root root 14 Oct  4 09:07 homes -> /volume1/homes
drwxr-xr-x 2 root root 4096 Oct  4 09:07 services
drwxr-xr-x 15 root root 4096 Oct  4 09:07 var

로컬 머신의 경우:

drwx------  7 user02  staff   224B Oct  4 09:27 .ssh/
drwxr-xr-x+ 152 user02  staff   4.8K Oct  4 09:27 user02/
drwxr-xr-x  6 root  admin   192B Jan  1  2020 /Users/

내가 다음에 무엇을 해야 하는지 아시나요?

미리 감사드립니다

답변1

로컬 ssh-agent를 실행해야 합니다. "다시 로그인을 시도합니다."에서 -l(또는, jsmith@remote-host)을 잊어버렸습니다.

당신은 아마도했다에이전트를 시작하고 해당 ssh-add섹션을 완료하되 다른 세션에서 수행하십시오. 내가 한 일은 창 관리자 초기화 내에서 호출하여 eval $(ssh-agent -s)모든 쉘이 프록시에 대해 알 수 있도록 하는 것입니다...

$ env | grep SSH
SSH_AUTH_SOCK=/tmp/ssh-LxwUgd8tuGU3/agent.1023801
SSH_AGENT_PID=1023802

게다가 a chmod 750 $HOMEchmod 700 $HOME\.ssha도 중요합니다. 비록 원래 설명된 메시지가 이를 암시하지는 않았지만요.

관련 정보