sshfs는 ~ / .ssh / config를 사용하지 않습니다 (Linux Mint 15에서)


10
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그룹 의 유일한 구성원입니다 .


MBS의 경우 -v 스위치와 함께 ssh를 실행하여 존재할 수있는 오류를 표시 할 수 있습니다. 파일을 읽는 동안 오류가 있는지 확인하려면이 작업을 수행하는 것이 좋습니다. 또한 대상 서버의 키에는 600 개의 권한이 있어야합니다.
Rqomey

빠른 답변 감사합니다. ssh verbose : pastebin.com/Rm5X7y5p (sshfs verbose와 함께 최소 분만에 반환
불가분의

-o ssh_command='ssh -v'명령을 사용하는 sshfs는 멈추고 아무것도 출력하지 않습니다
불가분의

나는 문제를 발견했을 수도 있다고 생각한다. sudo를 사용하여 원격 위치를 / mnt / new_dir에 마운트하려고했습니다. 지역 주택 내 위치에 장착하면 작동합니다. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount. 다른 사용자가 원격 자원을 사용할 수 있도록 / mnt에 마운트하는 데 필요한 권한을 갖도록 사용자를 구성 할 수 있습니까?
불가분 한

1
나는 당신이 스택 교환을 처음 사용하는 것을 보았으므로 환영합니다. 그러나 몇 가지 팁 : 데이터를 모호하게하여 자신을 익명화하려고 시도하지만 실제로는 안된다는 것을 알고 있습니다. 마운트를 어디에서 마운트했는지 나타내는 정보를 제공했다면 다른 사람들이 문제를 발견했을 수도 있습니다. 또한 출력을 제공하기 위해 외부 사이트 (pastebin)에 연결하지 마십시오. 여기에 포함하십시오. 마지막으로 해결책이 있다면 답을 제공하고 그 대답을 받아들이십시오. 주제에 "해결됨"을 넣지 마십시오.
Patrick

답변:


12

사용하고 있다면 sudo루트의 자격 증명을 사용하여 마운트 할 가능성이 높습니다. 아마 당신이 원하는 것을하지 않을 것입니다. /mntuser1으로 마운트하고 user2로 acessing. 그룹 및 사용자 권한으로 인해 복잡해질 것입니다. 공유 할 디렉토리를 / mnt에 마운트하려면 시스템 레벨을 통해 모든 디렉토리를 마운트해야합니다 autofs.

자동 마운팅

이와 같은 마운트 자동 마운트에 대해 알고있는 3 가지 방법이 있습니다.


그것은 정확히 문제였습니다. 해당 폴더의 권한을 수정하기 위해 취한 단계를 포함하도록 질문을 편집했지만 작동하는 동안 최상의 해결책은 아니라고 확신합니다. -지금까지 autofssshfs 연결을 설정할 수 없어서 아직 사용하려고하지 않았습니다. local:/root/.ssh/key및에 다른 키 페어를 추가하도록 제안 하고 remote:/[user]/.ssh/authorized_keys있습니까? 무엇을해야 chown하고 chmod이 될 local:/mnt/dirBE? (저는 완전한 파마를 원하고 다른 사용자 만 읽을 수 있습니다)
불가분 한

@mbs-업데이트 참조
slm

1
그 URL을 autofs에 맞습니까? 요청하면 잘못 표시되기 때문입니다. 영어가 아닌 언어로 스포츠를 보여줍니다.
제프리 앤더슨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.