일부 폴더를 복사하기 위해 원격 호스트에 로그인하는 데 사용하는 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 $HOME
와 chmod 700 $HOME\.ssh
a도 중요합니다. 비록 원래 설명된 메시지가 이를 암시하지는 않았지만요.