sshfs
부팅할 때마다 원격 디렉터리를 마운트하는 데 사용합니다 . 나는 이러한 짧은 명령을 .bashrc에 넣을 생각이었지만 올바른 방법은 아닌 것 같습니다™.
sshfs
로그인 시 이것을 실행하는 올바른 방법은 무엇입니까?
답변1
물론,.bashrc
잘못된. 대화형 쉘(쉘이 bash인 경우)을 실행하는 터미널을 열 때 이 파일을 읽습니다.
부팅 시 sshfs 마운트를 수행할 수 있지만 이는 대화형 인증이 필요하지 않은 경우에만 작동합니다. 대부분의 설정에서 이는 비밀번호 키가 없음을 의미합니다. (다른 방법도 있지만 일반적으로 NFS와 같은 기능이 이미 있는 신뢰할 수 있는 네트워크 내에서만 작동합니다.)
루트라면 항목을 추가할 수 있습니다.
/etc/fstab
. 이는 루트를 사용하여~/.ssh
키와 알려진 호스트를 찾습니다.example.com:/remote/path /mount/point fuse.sshfs idmap=user,uid=1234
하나 넣어도 돼
@reboot
크론탭 항목.@reboot sshfs -o idmap=user example.com:/remote/path /mount/point
원격 서버로 보내기 위해 비밀번호를 입력해야 하는 경우 먼저 로그인하고 작동하는 사용자 인터페이스가 있어야 합니다. 키 잠금을 해제하기 위해 비밀번호를 입력해야 하는 경우에도 마찬가지입니다.
대부분의 창 관리자와 데스크탑 환경에서는 로그인 시 사용자 정의 명령을 실행할 수 있습니다. 다음과 같은 코드 조각을 실행할 수 있습니다(현재 대부분의 사람들이 수행하는 SSH 에이전트가 시작되었다고 가정).
SSH_ASKPASS=ssh-askpass ssh-add ~/.ssh/id_rsa
mount | grep ' /mount/point ' ||
sshfs -o idmap=user example.com:/remote/path /mount/point
mount | grep ' /mount/point ' ||
여러 경로로 로그인한 경우 파일 시스템이 마운트되어 있는지 확인하세요. 또는 프록시를 사용하지 않고 다음을 수행합니다.
mount | grep ' /mount/point ' ||
SSH_ASKPASS=ssh-askpass sshfs -o idmap=user example.com:/remote/path /mount/point
프로그램 이 없는 경우 ssh-askpass
다른 방법은 터미널을 열어 프로그램을 설치하는 것입니다.
xterm -e 'ssh-add ~/.ssh/id_rsa'
mount | grep ' /mount/point ' ||
sshfs -o idmap=user example.com:/remote/path /mount/point
텍스트 모드 로그인의 경우 셸이 대화형인 경우에만 실행하세요 ssh-add
.~/.profile
case $- in
*i*)
ssh-add ~/.ssh/id_rsa
;;
esac
sshfs -o idmap=user example.com:/remote/path /mount/point
답변2
부팅 시 파일 시스템을 마운트하려면 해당 파일 시스템을 /etc/fstab
. 저는 원격 서버의 NFS 저장소에서 이 작업을 정기적으로 수행합니다.
10.0.0.1:/work /mnt nfs rw 0 0
이 형식은 잘 작동합니다. 귀하의 IP와 마운트하려는 디렉토리. 그런 다음 원격 서버의 해당 위치에 설치하십시오. fstab
설치 중에 이 작업을 수행하는 가장 좋은 방법입니다. 또는 시작 시 실행되는 작은 스크립트가 있을 수도 있습니다.
답변3
이 사용 사례에서는 쉽게 사용할 수 있습니다.afuse, FUSE
sshfs 기반 자동 마운터 [1].
배포판에서체계afuse
사용자 서비스 단위 파일을 쉽게 사용할 수 있습니다.다른 질문에 게시된 것처럼.
(재)생성할 수도 있습니다.퓨즈에 의해몇 줄의 간단한 쉘 스크립트 [2]~에서~/.profile
.
[1]: afuse
대부분의 Linux 배포판의 패키지 관리자에서 사용할 수 있습니다.
[2]: 이 링크 스크립트는 내이 설정을 systemd
사용자 서비스 로 전환하는 방법에 대한 질문.