자동 SSH 터널을 설정하는 방법

자동 SSH 터널을 설정하는 방법

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_*.

관련 정보