나는 crontab에 scp 작업을 설정하고 콘솔을 통해 해당 기능을 테스트하려고합니다. crontab은 환경 변수를 가져 오지 않습니다. env -i
, 또한 ID 키 가져 오기 ssh -i
.
env -i sh -c "ssh -i /home/myname/.ssh/id_rsa box hostname"
그러나이 방법은 효과가 없으므로 Permission denied (publickey)
. 내 열쇠가 올바르게 설정되어 있다고 생각합니다. 원격 상자의 authorized_key 파일에 내 공개 키를 추가했습니다.
두 컴퓨터에서 / etc / ssh / sshd_config에 다음과 같이 설정했습니다.
PubkeyAuthentication yes
RSAAuthentication yes
다음은 원격 호스트의 auth.log에있는 오류입니다.
Sep 13 21:45:13 box sshd[59109]: userauth-request for user myuser service ssh-connection method publickey remote_ip <someip> remote_port 51635 attempt 1 failures 0 [preauth] session=box:57d87369.6185
EDIT2 :
실행할 때 ...
SSH_AUTH_SOCK="" ssh -vv -i /home/myuser/.ssh/id_rsa myuser@myhost
내가 참조...
debug2: key: /home/myuser/.ssh/id_rsa (0x7fc5ee0d15a0), explicit
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/myuser/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).
authorized_keys에 파일을 수동으로 추가하려고 시도한 다음 나중에 ssh-copy-id를 시도했습니다. .ssh / 디렉토리는 700입니다.
너는 왜 환경이 필요하니? 변수?
—
Jakuje
crontab이하는 일이기 때문에 환경 변수를 차단하고 싶습니다.
—
barrrista
그리고 어떻게 정상적으로 인증합니까? 키에 암호가 있습니까?
—
Jakuje
나는 로그인 할 때 ssh-agent 포워딩을 사용한다. 하지만 crontab은 이것을 선택하지 않을 것이므로 키 쌍을 만들어서 가리키고 있습니다. 오류가 발생하여 질문이 업데이트됩니다.
—
barrrista
ssh-agent에 키가 없을 때이 새로운 키 쌍을 사용하여 로그인 할 수 있습니까?
—
Jakuje
SSH_AUTH_SOCK="" ssh -i /home/myname/.ssh/id_rsa hostname