![Bash 스크립트를 통해 SSH-Agent에 키가 추가된 경우 '권한 거부됨(공개 키)'](https://rvso.com/image/1601564/Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%ED%86%B5%ED%95%B4%20SSH-Agent%EC%97%90%20%ED%82%A4%EA%B0%80%20%EC%B6%94%EA%B0%80%EB%90%9C%20%EA%B2%BD%EC%9A%B0%20'%EA%B6%8C%ED%95%9C%20%EA%B1%B0%EB%B6%80%EB%90%A8(%EA%B3%B5%EA%B0%9C%20%ED%82%A4)'.png)
내 모바일 장치와 Raspberry Pi(동시에 각각 AArch 및 ARM CPU)에서는 ssh-agent
기본적으로 로드되지 않습니다.
먼저 다음을 시작해야 합니다 ssh-agent
.
eval `ssh-agent -s`
그런 다음 에이전트에 키를 추가합니다.
ssh-add /home/jimjamz/.ssh/myKey
비밀번호를 입력하라는 메시지가 표시되고 이를 입력합니다. 그러면 키가 에이전트에 추가됩니다.
Enter passphrase for /home/jimjamz/.ssh/myKey:
Identity added: /home/jimjamz/.ssh/myKey (/home/jimjamz/.ssh/myKey)
그러면 키를 다시 지정하지 않고도 원격 서버에 연결할 수 있습니다.
편의를 위해 에이전트를 시작하고 키를 추가하는 스크립트에 위의 내용을 추가하고 싶습니다.
#!/bin/bash
eval `ssh-agent -s`
ssh-add /home/jimjamz/.ssh/myKey
스크립트를 실행하면 에이전트 프로세스가 시작된 것을 볼 수 있으며 개인 키의 비밀번호를 입력하라는 메시지가 표시됩니다. 이것을 정확하게 입력하면 에이전트에 키가 추가됩니다.
그러나 원격 서버로 SSH를 시도하면 다음이 표시됩니다.
Permission denied (publickey).
ssh-add
문제는 내 bash 스크립트 내에서 호출하는 것 같습니다 . ssh-add
스크립트 외부에서 수동으로 호출한 다음 원격 서버에 SSH를 시도하면 연결할 수 있습니다.
ssh-add
Bash 스크립트 내에서 호출된 경우 키가 이미 추가되었음을 인식하지 못하는 이유는 무엇입니까 ?
다른 컴퓨터 중 하나(ssh-agent가 기본적으로 이미 로드되어 있는 컴퓨터)에서 bash 스크립트를 실행하면 스크립트 내에 추가된 키를 사용하여 원격 서버에 SSH로 연결할 수 있습니다. ssh-agent가 기본적으로 자동으로 실행되지 않는 장치에서는 작동하지 않는 것 같습니다.