Local: Linux Mint 15 - Olivia
/proc/version: Linux version 3.8.0-19-generic (buildd@allspice) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) )
ssh -V: OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012
sshfs -V: SSHFS version 2.4
FUSE library version: 2.9.0
fusermount version: 2.9.0
using FUSE kernel interface version 7.18
Remote: Ubuntu 12.04.3 LTS
/proc/version: Linux version 3.10.9-xxxx-std-ipv6-64 (kernel@kernel.ovh.net) (gcc version 4.7.2 (Debian 4.7.2-5) )
ssh -V: OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
sshfs와 fuse를 사용하여 원격 서버의 암호가없는 마운트를 설정하려고합니다. 원격 서버가 비표준 포트에서 실행 중이며 ssh 키 쌍을 사용하여 인증합니다.
성공하면 각각 다른 키를 가진 세 개의 원격 서버에 대해이 작업을 반복하므로 어떤 키가 어떤 원격 서버에 매핑되는지 지정할 수 있어야합니다.
이 튜토리얼에서 수정 한 내용을 기반으로했습니다.
- 공개 키는 원격에 있습니다.
- 로컬 사용자를
fuse
그룹에 추가했습니다. ~/.ssh/config
서버별로 로컬 을 편집했습니다 .
`
Host [server_ip]
Port = [port]
IdentityFile = "~/.ssh/[private_key]"
User = "[user]"
`
원격 서버를 로컬로 마운트하려고 할 때마다 내 개인 키의 암호가 아닌 원격 사용자의 암호를 묻는 메시지가 나타납니다. 원격 사용자는 저장하거나 기억하고 싶지 않은 임의로 생성 된 긴 암호를 가지고 있으므로 키를 사용하는 것이 좋습니다.
~/.ssh/config
명령을 사용하여 ssh ( 파일 과 결합)를 통해 연결할 ssh [ip]
수 있으므로 원격 사용자가 아닌 내 키 암호 문구를 요청하면 구성 파일을 올바르게 읽을 수 있습니다.
원격 서버에 연결을 시도하려면 명령에 전체 연결 세부 정보를 수동으로 지정해야합니다.`sshfs [user] @ [ip] : [remote_path] [local_path] -p [port]
내가 지금까지 시도한 것 :
- ssh-add / path / to / key (성공적인 추가)
PreferredAuthentication = publickey
~ / .ssh / config에서 지정- sshfs -o IdentityFile = / path / to / key user @ ip : / / my / mnt / dir
- sshfs user @ ip : / / my / mnt / dir -o IdentityFile = / path / to / key
- 키의 임시 이름을 기본값으로 변경
id_rsa
- sshfs -F ~ / .ssh / config
내가 간과하는 원격 또는 로컬 구성 파일이 있습니까? 내 ssh 설정을 읽고 사용하기 위해 sshfs 호출에 포함 해야하는 스위치 또는 옵션이 있습니까?
출력 ssh -v -p [port] [user]@[remote_ip]
OpenSSH_6.1p1 데비안 -4, OpenSSL 1.0.1c 2012 년 5 월 10 일 debug1 : 구성 데이터 읽기 /home/[me]/.ssh/config debug1 : /home/[me]/.ssh/config line 2 : [remote_ip]에 대한 옵션 적용 debug1 : /home/[me]/.ssh/config 라인 24 : *에 옵션 적용 debug1 : 구성 데이터 읽기 / etc / ssh / ssh_config debug1 : / etc / ssh / ssh_config 19 행 : *에 옵션 적용 debug1 : [remote_ip] [[remote_ip]] 포트 [port]에 연결합니다. debug1 : 연결이 설정되었습니다. debug1 : 신원 파일 /home/[me]/.ssh/[private_key] 유형 2 debug1 : 블랙리스트 파일 /usr/share/ssh/blacklist.DSA-1024 확인 debug1 : 블랙리스트 파일 /etc/ssh/blacklist.DSA-1024 확인 debug1 : 신원 파일 /home/[me]/.ssh/[private_key]-cert type -1 debug1 : 원격 프로토콜 버전 2.0, 원격 소프트웨어 버전 OpenSSH_5.9p1 Debian-5ubuntu1.1 debug1 : 일치 : OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH_5 * debug1 : 프로토콜 2.0에 대한 호환성 모드 사용 debug1 : 로컬 버전 문자열 SSH-2.0-OpenSSH_6.1p1 데비안 -4 debug1 : SSH2_MSG_KEXINIT가 전송되었습니다. debug1 : SSH2_MSG_KEXINIT가 수신되었습니다 debug1 : kex : 서버-> 클라이언트 aes128-ctr hmac-md5 zlib@openssh.com debug1 : kex : 클라이언트-> 서버 aes128-ctr hmac-md5 zlib@openssh.com debug1 : SSH2_MSG_KEX_ECDH_INIT 전송 debug1 : SSH2_MSG_KEX_ECDH_REPLY 예상 debug1 : 서버 호스트 키 : [key] debug1 : 포트 식별자없이 확인 debug1 : 호스트 '[remote_ip]'이 알려져 있으며 ECDSA 호스트 키와 일치합니다. debug1 : /home/[me]/.ssh/known_hosts:7에서 키를 찾았습니다. debug1 : 포트와 일치하는 키를 찾았습니다. debug1 : ssh_ecdsa_verify : 서명이 올바른 debug1 : SSH2_MSG_NEWKEYS가 전송되었습니다. debug1 : SSH2_MSG_NEWKEYS 예상 debug1 : SSH2_MSG_NEWKEYS 수신 debug1 : 서버에서 로밍을 허용하지 않음 debug1 : SSH2_MSG_SERVICE_REQUEST가 전송되었습니다. debug1 : SSH2_MSG_SERVICE_ACCEPT를 받았습니다 debug1 : 계속할 수있는 인증 : publickey, password debug1 : 다음 인증 방법 : 공개 키 debug1 : DSA 공개 키 제공 : /home/[me]/.ssh/[private_key] debug1 : 서버가 키를 승인 함 : pkalg ssh-dss blen 433 debug1 : 레벨 6에서 압축 사용 debug1 : 인증 성공 (공개 키) [remote_ip] ([[remote_ip]] : [port])에 인증되었습니다. debug1 : 채널 0 : 새로운 [클라이언트 세션] debug1 : no-more-sessions@openssh.com 요청 debug1 : 대화식 세션을 시작합니다. debug1 : 송신 환경. debug1 : 보내기 env LANG = en_GB.UTF-8 debug1 : 송신 env LC_CTYPE = en_GB.UTF-8 Ubuntu 12.04.3 LTS에 오신 것을 환영합니다 (GNU / Linux 3.10.9-xxxx-std-ipv6-64 x86_64)
편집 :
문제가 발견되었습니다. sudo를 사용하여 원격 위치를 / mnt / new_dir에 마운트하려고했습니다. 지역 주택 내 위치에 장착하면 작동합니다. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount
.
지금은 짓을 sudo chown root:fuse /mnt/new_dir
하고 sudo chmod 774 /mnt/new_dir
내가 의도 한대로 모든의 작동이 있다고 생각합니다.
이 설정과 관련하여 알아야 할 보안 문제가 있습니까? (나의 사용자와 루트는 fuse
그룹 의 유일한 구성원입니다 .
-o ssh_command='ssh -v'
명령을 사용하는 sshfs는 멈추고 아무것도 출력하지 않습니다
sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount
. 다른 사용자가 원격 자원을 사용할 수 있도록 / mnt에 마운트하는 데 필요한 권한을 갖도록 사용자를 구성 할 수 있습니까?