ssh 명령을 입력해 보았지만 /etc/rc.local
작동하지 않습니다.
/etc/rc.local:
#!/bin/bash
ssh -fN -R 8080:localhost:80 -i /home/pi/.ssh/id_rsa [email protected] >> /tmp/ssh-nginx.out 2>>/tmp/ssh-nginx.err
/tmp/ssh-nginx.err:
pi@raspberrypi:~ $ cat /tmp/ssh-nginx.err
ssh: connect to host 50.0.0.1 port 22: Network is unreachable
crontab(line is )에 동일한 명령을 추가하면 @reboot /etc/init.d/ssh-nginx
동일한 출력이 생성됩니다.
이를 수행하는 올바른 방법은 무엇입니까?
답변1
효과적인 솔루션이 있습니다. 어떤 의견이라도 대단히 감사하겠습니다.
이와 같은 SSH 스크립트를 작성하십시오./usr/local/bin/autossh-tunnel
#!/bin/bash
ssh -N -R 11001:localhost:80 -o ServerAliveInterval=30 -i /home/pi/.ssh/id_rsa [email protected]
# not necessary, but you may want to use autossh instead: /usr/bin/autossh -M 0 -q -N -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 11001:localhost:80 -i /home/pi/.ssh/id_rsa [email protected]
그리고 서비스 파일/etc/systemd/system/autossh-tunnel.service
[Unit]
Description=AutoSSH tunnel
After=network.target
[Service]
ExecStart=/usr/local/bin/autossh-tunnel
# Remove restarts if the command is just a one-off
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
sudo systemctl enable autossh-tunnel.service
부팅 시 시작하려면 실행하세요 . (지금 시작하세요 sudo systemctl start autossh-tunnel.service
)
또한 SSH 터널 대신 VPN을 사용하는 것도 고려해 보세요.