sshfs 将不会使用 ~/.ssh/config (在 Linux Mint 15 上)

sshfs 将不会使用 ~/.ssh/config (在 Linux Mint 15 上)
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 密钥对进行身份验证。

成功后,我将对另外三个远程服务器重复此操作,每个服务器具有不同的密钥,因此我确实需要能够指定哪个密钥映射到哪个远程服务器。

我的修改基于本教程

  • 公钥位于remote: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

是否有我忽略的远程或本地配置文件?我需要在 sshfs 调用中包含一些开关或选项(尝试过 -F)以强制它读取和使用我的 ssh 配置?

输出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:身份文件 /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类型-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]]:[port]) 进行身份验证。
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_dirsudo chmod 774 /mnt/new_dir并且我相信一切都按预期进行。

此设置是否存在我需要注意的安全问题? (我自己的用户和 root 是该组的唯一成员fuse

答案1

如果您正在使用,sudo那么您可能会使用 root 的凭据进行安装,我不认为这是您想要的。我可能不会做你要求的事,wrt。以 user1身份安装/mnt并以 user2 身份访问。组和用户权限将会变得复杂。如果您确实想将目录挂载到 /mnt 进行共享,那么您确实应该通过系统级别挂载它以供所有使用autofs.

自动挂载

据我所知,有 3 种方法可以自动挂载此类挂载。

相关内容