
example.com
저는 원격 호스트의 Unix 도메인 소켓에 대한 연결을 내 로컬 컴퓨터의 Unix 도메인 소켓으로 전달하기 위해 SSH의 원격 전달 기능을 사용해 왔습니다 . 두 머신 모두 Linux를 실행합니다. 명령은 다음과 같습니다:
ssh -N -n -R /home/guest/daemon.sock:/var/run/daemon.sock [email protected]
내 컴퓨터가 부팅될 때마다 터널이 자동으로 생성되도록 이를 자동화하고 싶습니다. /etc/ssh/ssh_host_rsa_key.pub
내 로컬 컴퓨터의 파일을 원격 컴퓨터의 에 복사하고 내 로컬 컴퓨터에 /home/guest/.ssh/id_rsa.pub
다음 줄을 추가했습니다 ./etc/ssh/ssh_config
Host example.com User guest IdentityFile /etc/ssh/ssh_host_rsa_key RemoteForward /home/guest/daemon.sock /var/run/daemon.sock
보안상의 이유로 원격 시스템의 사용자 'guest'를 터널 생성에만 제한하고 싶습니다. 따라서 /etc/ssh/sshd_config
원격 호스트에 다음 줄을 추가했습니다 .
match User guest AllowTcpForwarding yes X11Forwarding no AllowAgentForwarding no ForceCommand /bin/false
문제는 다음과 같습니다. 로컬 컴퓨터가 부팅될 때 아무 일도 일어나지 않습니다. 중요한 것을 놓치고 있는 것 같은데 무엇을 찾을 수 없었습니다. 어떤 아이디어가 있나요?
답변1
이 ssh_config
파일은 SSH 연결을 자동화하는 데 전혀 아무 작업도 수행하지 않습니다.
이는 정의를 허용하기 위해서만 존재합니다.기본 옵션– 를 실행할 때마다 ssh example.com
해당 "호스트" 섹션이 조회되고 모든 옵션이 명령줄에 추가됩니다. (셸 별칭과 유사하다고 할 수 있습니다.) ~/.ssh/config
동일한 목적으로 사용자별이 더 일반적으로 사용됩니다.
하지만 실제로 결정하는 것은 여전히 당신에게 달려 있습니다.달리다ssh
예를 들어 systemd .service 단위, /etc/init.d 스크립트 또는 cron 작업을 통한 명령입니다 . (네트워킹이 구성된 후 시작해야 하는 서비스를 정의하는 것을 잊지 마세요.)
(너5월ssh_config를 계속 사용하지만 여기서는 쓸모가 없으며 단지정기적인짜증나 는 연결 example.com
. 대신 서비스 파일에서 직접 동일한 옵션을 지정하면 됩니다.)
불법은 아니지만 클라이언트 측 인증에 호스트 키를 재사용하는 것은 다소 이상합니다. 를 사용하여 전용 키 쌍을 생성하는 것이 더 좋습니다 ssh-keygen
.
그리고 @Paul이 주석에서 언급했듯이 신뢰할 수 있는 키가 나열되어야 합니다 authorized_keys
. SSH 서버는 어떤 파일에도 관심이 없습니다 id_*
.