데비안에서 부팅 시 원격 SSHFS 디렉터리를 자동으로 마운트하는 방법

SSHFS 마운트를 구성하고 제대로 작동하는지 확인한 후 Debian을 재부팅하면 원격 디렉터리가 다시 비어 있는 것을 발견할 수 있습니다. 수동 명령이 제대로 작동한 이유는 사용자가 로그인되어 있고 네트워크가 이미 온라인 상태였으며 SSH가 암호나 호스트 키 확인이 필요한지 질문할 수 있었기 때문입니다. 하지만 부팅 시 마운트는 이러한 편의성을 제공하지 않습니다.

가장 확실한 해결책은 SSH 인증을 비대화형으로 만들고, 영구적인 /etc/fstab항목을 생성하고, 파일 시스템이 네트워크에 의존한다는 것을 systemd에 알리는 것입니다. 이 가이드는 가장 간단한 작동 설정부터 시작하여 느린 네트워크 및 SSH 세션 끊김에 대한 옵션을 추가합니다. 예제에서는 user@server.example.com:/srv/data원격 디렉터리로 를, /mnt/remote로컬 마운트 지점으로 를 사용합니다.

데비안 패키지 페이지에는 현재 데비안 12(북웜)용 SSHFS 3.7.3이 나와 있으며, SSHFS는 SSH에서 제공하는 SFTP 서브시스템을 사용합니다. 데비안 SSHFS 패키지 페이지 와 SSHFS 매뉴얼을 참조하십시오 . 패키지 버전은 데비안 릴리스마다 다르지만, 아래의 부팅 마운트 방식은 표준 fstab 및 systemd 동작을 기반으로 합니다.

SSHFS 마운트가 수동으로는 작동하지만 부팅 시에는 실패하는 이유는 무엇입니까?

대부분의 실패 원인은 세 가지입니다. 첫째, SSH는 여전히 암호, 키 암호문 또는 최초 호스트 키 확인을 요구할 수 있습니다. 부팅 작업에는 이러한 프롬프트에 응답할 수 있는 터미널이 없습니다. 둘째, 네트워크 또는 DNS를 완전히 사용할 수 있기 전에 마운트가 시작될 수 있습니다. 셋째, 장시간 유지된 SSH 연결이 네트워크 중단 후 만료될 수 있습니다.

Debian의 systemd 문서에서는 해당 _netdev옵션이 마운트를 네트워크 마운트로 처리하도록 강제한다고 설명합니다. 네트워크 마운트는 다음에 정렬됩니다 network-online.target. 동일한 문서에서는 항목이 부팅 시 네이티브 systemd 마운트 단위로 변환된다고 언급합니다 . Debian의 systemd.mount(5)를/etc/fstab 참조하십시오 .

1. SSHFS를 설치하고 마운트 포인트를 생성합니다.

제공된 SSHFS 클라이언트를 설치하고 원격 파일을 노출할 로컬 디렉터리를 생성합니다.

sudo apt update
sudo apt install sshfs
sudo mkdir -p /mnt/remote

SSHFS는 Linux Filesystem in Userspace 인터페이스인 FUSE를 기반으로 구축되었습니다. Debian 12에서 이 sshfs패키지는 FUSE 3 및 OpenSSH 클라이언트에 의존합니다.

Debian 터미널에서 apt 업데이트, SSHFS 설치 및 /mnt/remote 디렉터리 생성 과정을 보여줍니다.
SSHFS 패키지를 설치하고 마운트 지점이 될 로컬 디렉터리를 생성하십시오.

2. 프롬프트 없이 실행될 수 있는 SSH 인증을 설정합니다.

systemd를 통해 시작되는 시스템 전체 마운트의 경우, 마운트 도우미가 루트 권한으로 실행되므로 루트 소유의 전용 키를 사용하는 것이 간단합니다. 시스템 자체가 신뢰할 수 있고 키가 해당 용도로만 사용되도록 제한된 경우에만 암호 없이 키를 생성하십시오.

sudo ssh-keygen -t ed25519 -f /root/.ssh/sshfs_remote
sudo ssh-copy-id -i /root/.ssh/sshfs_remote.pub user@server.example.com

두 번째 명령은 일반적으로 원격 계정 암호를 한 번만 요청합니다. 그런 다음 비대화형 방식으로 정확한 신원을 확인합니다.

sudo ssh -i /root/.ssh/sshfs_remote -o BatchMode=yes user@server.example.com true

해당 명령이 프롬프트 없이 성공적으로 종료되면 인증 준비가 완료된 것입니다. 서버 지문 확인을 요청하는 경우, 루트 권한으로 대화형 연결을 한 번 수행한 후 신뢰할 수 있는 소스를 통해 지문을 확인하고 수락하십시오. 호스트 키 오류를 해결하기 위해 호스트 확인을 비활성화하지 마십시오.

OpenSSH는 BatchMode=yes암호 및 확인 프롬프트를 비활성화하기 때문에 스크립트 및 배치 작업에 특화된 문서입니다. 호스트 키는 사용자의 known_hosts파일과 비교하여 검사됩니다. Debian ssh(1) 매뉴얼 과 ssh_config(5) 를 참조하십시오 .

SSH 키 생성, ssh-copy-id 및 배치 모드 SSH 연결 테스트를 보여주는 Debian 터미널 화면입니다.
키 기반 SSH 액세스를 준비하고 대화형 입력 없이 연결이 성공적으로 이루어지는지 확인합니다.

3. fstab 파일을 편집하기 전에 SSHFS 마운트를 수동으로 확인하십시오.

기본 SSHFS 명령이 작동할 때까지 부팅 순서 디버깅을 하지 마십시오. 동일한 키를 사용하여 디렉터리를 한 번 마운트하십시오.

sudo sshfs user@server.example.com:/srv/data /mnt/remote   -o IdentityFile=/root/.ssh/sshfs_remote   -o reconnect   -o ServerAliveInterval=15   -o ServerAliveCountMax=3

원격 파일 목록을 볼 수 있는지 확인한 다음 마운트를 해제하고 fstab을 테스트하십시오.

ls -la /mnt/remote
sudo fusermount3 -u /mnt/remote

상위 SSHFS 매뉴얼에서는 reconnect중단된 연결을 다시 설정하는 방법을 권장합니다. 또한 ServerAliveInterval유휴 SSH 연결이 조용히 끊어질 때 마운트가 멈춘 것처럼 보이는 현상을 방지할 수 있다고 설명합니다. 15초 간격과 OpenSSH의 기본 응답 없는 프로브 카운트 3개를 사용하면 약 45초 만에 끊어진 연결이 감지됩니다. 여기서는 동작을 명확히 하기 위해 카운트를 명시적으로 언급했습니다.

4. /etc/fstab에 영구적인 SSHFS 항목을 추가합니다.

파일을 편집하기 전에 백업하세요.

sudo cp /etc/fstab /etc/fstab.backup
sudo nano /etc/fstab

다음 줄을 한 줄 추가하세요:

user@server.example.com:/srv/data /mnt/remote fuse.sshfs _netdev,IdentityFile=/root/.ssh/sshfs_remote,BatchMode=yes,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,default_permissions 0 0

이 fuse.sshfs하위 유형은 Debian의 마운트 도구에서 이해됩니다. 상위 SSHFS 설명서에서도 sshfsfstab 파일 시스템 유형으로 문서화되어 있으며 fuse.sshfs호환성을 위한 참고 사항이 있습니다. Debian의 fstab(5) 설명서는 6개의 fstab 필드를 설명하고 .와 같은 파일 시스템 하위 유형 표기법을 권장합니다 fuse.sshfs.

옵션이것이 여기에 있는 이유
_netdevsystemd가 마운트를 네트워크에 종속적인 것으로 처리하도록 합니다.
IdentityFile=...대화형 에이전트에 의존하는 대신 개인 키를 명시적으로 선택합니다.
BatchMode=yes비밀번호 또는 확인 메시지를 기다리지 않고 실패합니다.
reconnectSSHFS가 끊어진 연결을 다시 설정할 수 있도록 합니다.
ServerAliveInterval=15유휴 기간 동안 SSH 수준의 유지 관리 프로브를 전송합니다.
ServerAliveCountMax=3SSH 연결이 끊어지기 전에 응답 없는 keepalive 프로브를 제한합니다.
default_permissions원격 인증 외에도 로컬 권한 확인을 지원합니다.
Nano 편집기에서 _netdev, IdentityFile, reconnect 및 ServerAlive 옵션이 포함된 /etc/fstab SSHFS 항목을 표시합니다.
/etc/fstab 파일에 SSHFS 마운트를 추가하고, 네트워크, ID 및 재연결 옵션을 명시적으로 지정하십시오.

5. 재부팅하기 전에 fstab 항목을 테스트하십시오.

/etc/fstab재부팅 전에 오타를 수정하는 것이 훨씬 쉽습니다. systemd에게 생성된 마운트 유닛을 다시 로드하도록 요청한 다음 해당 항목을 테스트하십시오.

sudo systemctl daemon-reload
sudo mount -a
findmnt -T /mnt/remote
ls -la /mnt/remote

mount -a오류가 발생하지 않고 findmnt보고 되면 fuse.sshfsfstab 구문이 허용되고 파일 시스템이 마운트됩니다. Debian의 mount(8) 매뉴얼은mount -a 표시된 항목을 제외하고 fstab 파일 시스템을 마운트한다는 것을 확인합니다 noauto.

debian 터미널 화면에 mount -a 명령, /mnt/remote에 대한 findmnt 출력, 그리고 활성화된 systemd 마운트 유닛이 표시됩니다.
재부팅하기 전에 `mount -a`, `findmnt` 및 생성된 systemd 마운트 유닛을 사용하여 `fstab` 항목을 확인하십시오.

네트워크가 제때 준비되지 않으면 어떻게 될까요?

_netdevsystemd에 올바른 순서 지정 의미 체계를 제공하지만, network-online.target이를 제공하는 네트워크 관리 서비스의 정확도에 따라 결과가 달라집니다. Wi-Fi, VPN, DHCP 지연, DNS 지연 및 특이한 네트워크 스택으로 인해 즉시 부팅 마운트가 여전히 불안정할 수 있습니다.

이 경우, systemd 자동 마운트를 사용하여 부팅 프로세스가 자동 마운트 지점을 생성하고, 무언가가 처음 접근할 때만 SSHFS 연결을 설정하도록 합니다 /mnt/remote. x-systemd.automount옵션에 다음을 추가하세요.

user@server.example.com:/srv/data /mnt/remote fuse.sshfs _netdev,x-systemd.automount,IdentityFile=/root/.ssh/sshfs_remote,BatchMode=yes,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,default_permissions 0 0

이 방법은 원격 호스트에 가끔 접속할 수 없는 노트북, Wi-Fi 시스템 또는 서버에서 더 나은 선택인 경우가 많습니다. 이 방법은 동작 방식을 약간 변경합니다. 자동 마운트는 부팅 중에 준비되지만 실제 SSH 연결은 첫 번째 접근 시에 이루어집니다. 만약 애플리케이션이 시작되기 전에 원격 디렉터리에 연결되어 있어야 하는 경우, 일반 네트워크 마운트를 유지하고 해당 애플리케이션의 systemd 유닛이 마운트 유닛에 의존하도록 하는 것이 좋습니다.

allow_other가 필요하신가요?

기본적으로 FUSE 마운트는 마운트 컨텍스트와 연결된 권한에 따라서만 접근할 수 있습니다. 다른 로컬 사용자의 접근을 허용하는 방법은 SSHFS 설명서를 참조하십시오 allow_other. 서비스 또는 다른 계정에서 마운트된 파일이 반드시 필요한 경우가 아니라면 접근 권한을 추가하지 마십시오.

만약 사용하신다면 allow_other, /etc/fuse.conf먼저 FUSE 보안 관련 사항을 검토하십시오. default_permissions일반적으로 로컬 Unix 권한 검사가 생략되지 않도록 와 함께 사용하는 것이 적절합니다. 원격 SSH 계정은 서버에서 허용하는 작업 종류를 최종적으로 결정합니다.

부팅 시 SSHFS 오류 문제 해결

마운트가 암호를 기다립니다.

비대화형 테스트를 정확히 반복하십시오 sudo ssh ... -o BatchMode=yes. 테스트가 실패하면 systemd를 수정하기 전에 공개 키 인증 문제를 해결하십시오. 암호로 보호되는 키에는 에이전트 또는 다른 부팅 시 비밀 키 메커니즘이 필요합니다. 일반 fstab 마운트로는 암호를 입력할 수 없습니다.

호스트 키 확인에 실패했습니다.

일괄적인 해결책으로 설정하지 마십시오 StrictHostKeyChecking=no. 서버가 재구축되었는지 또는 호스트 키가 합법적으로 변경되었는지 확인하십시오. SSH 호스트 키 검사는 가장 공격 및 중간자 공격에 대한 보안 제어입니다.

로그인 후에는 마운트가 작동하지만 부팅 중에는 작동하지 않습니다.

생성된 유닛 이름과 저널을 확인하세요. /mnt/remotesystemd는 일반적으로 경로를 이스케이프 처리합니다 mnt-remote.mount.

systemctl status mnt-remote.mount
journalctl -b -u mnt-remote.mount

만약 를 추가했다면 x-systemd.automount, 다음 사항도 확인해 보세요:

systemctl status mnt-remote.automount

서버 또는 네트워크 연결이 끊어진 후 접속이 중단됩니다.

Keep reconnect및 SSH keepalive 기능을 활성화하십시오. SSHFS 매뉴얼에서는 연결 끊김이 감지되지 않으면 파일 시스템 작업이 무기한으로 차단될 수 있다고 경고합니다. Keepalive는 연결 끊김 감지 범위를 제한하지만, 연결이 끊어졌을 때 진행 중이던 I/O 작업은 여전히 ​​실패할 수 있으며 애플리케이션에서 재시도해야 할 수 있습니다.

마운트된 항목이 재부팅 후에도 제대로 유지되는지 확인하는 방법

성공적으로 완료 되면 mount -a컴퓨터를 재부팅하십시오.

sudo reboot

다시 연결한 후 다음 사항들을 점검하십시오.

findmnt -T /mnt/remote
systemctl is-active mnt-remote.mount
ls -la /mnt/remote

이 옵션을 선택하신 경우 x-systemd.automount, 첫 접근 시까지 마운트 장치가 비활성화될 수 있습니다. 먼저 자동 마운트를 확인한 다음 다음 명령으로 활성화하십시오 ls.

systemctl is-active mnt-remote.automount
ls -la /mnt/remote
findmnt -T /mnt/remote

성공적인 설정은 다음과 같은 네 가지 특징을 보입니다. SSH 인증이 사용자 개입 없이 완료되고, fstab 항목이 제대로 입력되었으며 mount -a, systemd가 마운트를 네트워크 종속적인 것으로 인식하고, 재부팅 후에도 원격 파일에 접근할 수 있어야 합니다. 이러한 검사 중 하나라도 실패하면 임의로 마운트 옵션을 추가하기보다는 해당 부분을 직접 문제 해결해야 합니다.

댓글 남기기

Pardus Linux 23에서 사운드 카드 드라이버가 감지되지 않는 문제 해결

Pardus Linux 23에서 사운드 카드 드라이버가 감지되지 않는 문제 해결

Pardus Linux 23에서 사운드 카드가 인식되지 않는 문제를 해결합니다. ALSA 감지, 커널 모듈, 오디오 서비스, 출력 프로필, 펌웨어 및 업데이트를 안전하게 점검하세요.

Pardus KVM 게스트에서 디스플레이 해상도가 1024x768로 고정된 문제 해결

Pardus KVM 게스트에서 디스플레이 해상도가 1024x768로 고정된 문제 해결

Pardus KVM 게스트가 1024x768 해상도에 고정된 문제를 해결하려면 가상 GPU, SPICE 에이전트, X11 또는 Wayland 세션을 확인하고 더 높은 해상도의 디스플레이 모드가 올바르게 설정되었는지 확인하십시오.

데비안에서 부팅 시 원격 SSHFS 디렉터리를 자동으로 마운트하는 방법

데비안에서 부팅 시 원격 SSHFS 디렉터리를 자동으로 마운트하는 방법

키 기반 SSH, /etc/fstab, systemd 네트워크 옵션, 자동 마운트 및 검증 단계를 사용하여 Debian에서 부팅 시 원격 SSHFS 디렉터리를 자동으로 마운트합니다.

SLES 시스템 업그레이드 중 발생하는 "메모리를 할당할 수 없습니다" 오류 해결 방법

SLES 시스템 업그레이드 중 발생하는 "메모리를 할당할 수 없습니다" 오류 해결 방법

SLES 업그레이드 중 발생하는 "메모리를 할당할 수 없습니다" 오류를 해결합니다. RAM, 스왑, OOM 로그 및 프로세스 제한을 확인한 다음 패키지 트랜잭션을 중단하지 않고 복구합니다.

Harmonica OS 태블릿의 터치스크린 보정 문제 해결: 적합한 Linux 해결 방법을 선택하세요

Harmonica OS 태블릿의 터치스크린 보정 문제 해결: 적합한 Linux 해결 방법을 선택하세요

Harmonica OS(HamoniKR) 태블릿에서 터치 오프셋, 회전 및 디스플레이 매핑 문제를 해결하세요. X.Org와 libinput의 해결 방법을 비교하고, 안전하게 테스트하고, 보정이 도움이 되지 않는 경우를 알아보세요.

기존 Debian 12에 암호화된 SWAP 파티션을 설정하는 방법

기존 Debian 12에 암호화된 SWAP 파티션을 설정하는 방법

dm-crypt, 매 부팅 시 새로운 임의 키 생성, /etc/crypttab, /etc/fstab 파일 및 안전한 검증 단계를 사용하여 기존 Debian 12 스왑 파티션을 암호화합니다.

우분투에서 이메일 알림을 통해 SMART 드라이브 상태를 모니터링하는 방법

우분투에서 이메일 알림을 통해 SMART 드라이브 상태를 모니터링하는 방법

Ubuntu에 smartmontools를 설치하여 드라이브 상태를 모니터링하고 SMART 이메일 알림을 전송하세요. 장치 지원 여부를 확인하고, 메일 전송을 구성하고, 알림을 테스트하고, 오류를 해결할 수 있습니다.

UEFI 시스템에 Debian을 설치한 후 "부팅 가능한 장치를 찾을 수 없음" 오류가 발생하는 문제 해결 방법

UEFI 시스템에 Debian을 설치한 후 "부팅 가능한 장치를 찾을 수 없음" 오류가 발생하는 문제 해결 방법

Debian UEFI 부팅 실패 문제를 해결하려면 설치 프로그램 부팅 모드, EFI 시스템 파티션, NVRAM 항목, GRUB EFI 파일, 보안 부팅 및 펌웨어 대체 설정을 확인하십시오.

우분투 데스크톱에서 Btrfs 스냅샷을 자동으로 설정하는 방법

우분투 데스크톱에서 Btrfs 스냅샷을 자동으로 설정하는 방법

Ubuntu Desktop에서 Snapper를 사용하여 예약된 Btrfs 스냅샷을 생성하고 정리하도록 구성하십시오. 먼저 서브볼륨 레이아웃을 확인하고 systemd 타이머를 활성화한 다음 보존 기간을 안전하게 확인하십시오.

SUSE Linux Enterprise LVM 씬 프로비저닝 공간 부족 문제를 안전하게 해결하세요

SUSE Linux Enterprise LVM 씬 프로비저닝 공간 부족 문제를 안전하게 해결하세요

SUSE Linux Enterprise에서 데이터 고갈과 메타데이터 고갈을 구분하고, 스토리지를 확장하고, 메타데이터를 복구하고, 자동 확장을 활성화하여 LVM 씬 풀이 가득 찬 문제를 진단하고 복구합니다.