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 ([email protected]) (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 및 fusion을 사용하여 원격 서버의 비밀번호 없는 설치를 설정하려고 합니다. 원격 서버가 비표준 포트에서 실행되고 있으며 인증을 위해 SSH 키 쌍을 사용하겠습니다.
성공하면 각각 다른 키를 사용하는 원격 서버 3개를 추가로 사용하여 이 작업을 반복하므로 어떤 키가 어떤 원격 서버에 매핑되는지 지정할 수 있어야 합니다.
내 수정 내용은 다음을 기반으로 합니다.이 튜토리얼
- 공개 키는 원격:authorized_keys에 있습니다.
- 그룹 에 로컬 사용자를 추가했습니다
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 호출에 일부 스위치나 옵션(-F 시도)을 포함해야 합니까?
산출ssh -v -p [port] [user]@[remote_ip]
OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 2012년 5월 10일 debug1: 구성 데이터 읽기/home/[me]/.ssh/config debug1: /home/[me]/.ssh/config 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: ID 파일 /home/[me]/.ssh/[private_key] 유형 2 debug1: 블랙리스트 파일 /usr/share/ssh/blacklist.DSA-1024를 확인하세요. debug1: 블랙리스트 파일 /etc/ssh/blacklist.DSA-1024를 확인하세요. debug1: ID 파일/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 Debian-4 debug1: SSH2_MSG_KEXINIT가 전송되었습니다. debug1: SSH2_MSG_KEXINIT 수신됨 debug1: kex: 서버->클라이언트 aes128-ctr hmac-md5[이메일 보호됨] debug1: kex: 클라이언트->서버 aes128-ctr hmac-md5[이메일 보호됨] 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: 계속할 수 있는 인증: 공개 키, 비밀번호 debug1: 다음 인증 방법: publickey debug1: DSA 공개 키 제공:/home/[me]/.ssh/[private_key] debug1: 서버에서 허용된 키: pkalg ssh-dss blen 433 debug1: 레벨 6 압축을 활성화합니다. debug1: 인증에 성공했습니다(공개 키). [remote_ip] ([[remote_ip]]:[포트])로 인증되었습니다. debug1: 채널 0: 새 [클라이언트 세션] debug1: 요청[이메일 보호됨] debug1: 대화형 세션에 들어갑니다. debug1: 환경을 보냅니다. debug1: 전송 환경 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
.
답변1
사용하고 있다면 sudo
아마도 루트의 자격 증명을 사용하여 설치하고 있을 것입니다. 제 생각에는 이것이 원하는 것이 아닐 것입니다. 나는 아마 당신이 요구하는 것을 하지 않을 것입니다. user1로 설치 /mnt
하고 user2로 액세스합니다. 그룹 및 사용자 권한은 복잡해집니다. 공유를 위해 디렉토리를 /mnt에 마운트하려면 실제로 모든 사용을 위해 시스템 수준으로 마운트해야 합니다 autofs
.
자동 마운트
내가 아는 한, 이러한 마운트를 자동으로 마운트하는 방법에는 3가지가 있습니다.