환경

  • 라즈베리파이 4 (4gb) : ssh 활성화, 인터넷 접근 경로 존재
  • 맥북, 맥미니 : mac os catalina(10.15.7), brew

서버, ssh 접속 환경 준비

라파 외부 도메인 설정하기

ssh는 단일 포트만 TCP/22번으로 잘 열리면 접속에 문제가 없다. 단! 외부 포트도 22번으로 열면 무지막지한 요청이 들어오니 가능하면 다른 포트로 바꾸자. 이 부분은 자세히 설명은 생략하고, 공유기 환경 가정하에 다음 2가지만 진행하면 된다.

  • ip가 바뀌어도 접속할 수 있도록 DDNS 설정
    • iptime이 자체 ddns를 제공해준다.
    • 혹은 라즈베리파이에서 별도 ddns client를 써서 다른 서비스를 쓴다.
  • 포트포워딩 설정
    • 이것도 iptime 공유기 설정 페이지에서 존재한다.

다 했으면 휴대폰 lte혹은 다른 네트워크에서 외부 도메인으로 접근이 되는지 확인해보자

ssh private key 등록

아래와 같이 ssh config로 바로 접근하려면 key 생성을 통해서 접근을 하도록 해야한다!

  1. ssh-keygen으로 키를 생성한다.
  2. 퍼블릭 키의 내용을 서버의 ~/.ssh/authrized_keys 파일에 추가해준다 (한줄)
  3. ssh 커맨드로 접속하여 패스워드 없이 접속이 잘 되는지 확인한다.

ssh config 등록

vs code에서 ~/.ssh/config 파일을 열면 ssh 호스트 기본 설정을 수정할 수 있다

Host {설정명}
 HostName {도메인}
 User {유저명}
 Port {포트}

위와 같이 설정하고 나면 커맨드에서는 ssh {설정명}으로도 접속할 수 있다!

맥(클라이언트) 설정

sftp 마운트 유틸 설치

다음 명령어로 2가지 설치해주도록 하자 (생각보다는 시간이 걸린다)

brew install cask osxfuse

brew install sshfs

sshfs 마운트 해보기

이제 필요한 것은 다 준비 되었다! 한번 접속이 되는지 확인해보자

sshfs {설정명}:{라파의 마운트 대상 폴더} {맥의 마운트 폴더} -ovolname={새로 만들 맥의 볼륨 이름}

이렇게 진행하면 맥의 마운트 폴더에 라파의 스토리지가 등장하게 된다! 그리고 맥 자체에서 볼륨으로 인식하게 되어 마운트 해제가 가능하다 (마운트는 안된다)

마운트 스크립트 (애플 스크립트) 작성하기

이렇게 매번 커맨드를 입력해서 마운트를 시킬 수는 없다. 간단하게 애플 스크립트로 마운트 프로그램을 작성해서 spotlight기능으로 바로 사용할 수 있게 해보자.

스크립트 편집기를 열어서 다음과 같이 입력한다.

tell application "Terminal"
	do script "{sshfs 마운트에 사용한 명령어}"
end tell

## 마운트 후에 파인더를 열고 싶다면..
# tell application "Finder" to open ("{원하는 폴더/파일" as POSIX file)

## 마운트 후에 vs code를 열고 싶다면..
# tell application "Visual Studio Code" to open ("{원하는 폴더/파일}" as POSIX file)

이렇게 입력해서 내보내기를 하면 응용프로그램 형태로 내보낼 수 있다. 이걸 가지고 온 사용자가 쓸수 있는 맥 프로그램이에요! 할 순 없으니, 사용자 폴더의 맥 응용프로그램 위치에 저장하자. /Users/{사용자이름}/응용프로그램 폴더에 저장하고, 이름은 spotlight에서 검색하기 쉬울만한 걸로 정하면 된다.

조금 더 응용하면 주석으로 덧붙인 대로 마운트 후에 마운트한 특정 폴더를 여는 것도 편해보인다. 이제 spotlight 단축키 누르고 프로그램 이름 써서 엔터 누르면, 바로 마운트가 된다!

Reference

감사합니다.