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 ​​для аутентификации.

В случае успеха я буду повторять это еще для трех удаленных серверов, каждый с разными ключами, поэтому мне нужно будет указать, какие ключи сопоставляются с каким удаленным сервером.

Я основал свои модификации на этом уроке

  • Открытый ключ находится в удаленном режиме: author_keys
  • Я добавил своего локального пользователя в fuseгруппу.
  • Я отредактировал свой локальный, ~/.ssh/configчтобы иметь (на сервер):

`

Host [server_ip]
  Port = [port]
  IdentityFile  = "~/.ssh/[private_key]"
  User = "[user]"

`

Всякий раз, когда я пытаюсь подключить удаленный сервер локально, у меня запрашивается пароль удаленного пользователя (а не пароль моего личного ключа). У удаленного пользователя есть длинный случайно сгенерированный пароль, который я бы не хотел сохранять или запоминать, поэтому ключи - это то, как я хочу это сделать.

Я могу подключиться через ssh (в сочетании с ~/.ssh/configфайлом) с помощью команды, ssh [ip]поэтому я знаю, что файл конфигурации может быть прочитан правильно, поскольку меня спрашивают о ключевой фразе моего ключа, а не удаленного пользователя.

Чтобы даже попытаться подключиться к удаленному серверу, я должен вручную указать полную информацию о соединении в команде: `sshfs [пользователь] @ [ip]: [remote_path] [local_path] -p [порт]

Что я пробовал до сих пор:

  • ssh-add / path / to / key (успешное добавление)
  • Указание PreferredAuthentication = publickeyв ~ / .ssh / config
  • sshfs -o IdentityFile = / путь / к / ключу пользователя @ ip: / / my / mnt / dir
  • sshfs user @ ip: / / my / mnt / dir -o IdentityFile = / путь / к / ключу
  • временное переименование ключа по умолчанию 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 10 мая 2012 г.
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]] порту [порт].
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: match: 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 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: ключ хоста сервера: [ключ]
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, пароль
debug1: следующий метод аутентификации: publickey
debug1: предложение открытого ключа DSA: /home/[me]/.ssh/[private_key]
debug1: сервер принимает ключ: pkalg ssh-dss blen 433
debug1: включение сжатия на уровне 6.
debug1: аутентификация прошла успешно (publickey).
Аутентифицирован на [remote_ip] ([[remote_ip]]: [порт]).
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)

Изменить:
я нашел проблему. Я пытался смонтировать удаленное местоположение в / mnt / new_dir с помощью sudo. Если я подхожу к месту в моем местном доме, то это работает. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount,

Теперь я сделал , sudo chown root:fuse /mnt/new_dirи sudo chmod 774 /mnt/new_dirя считаю , что все работает , как предполагалось.

Есть ли какие-либо проблемы безопасности с этой настройкой, о которых мне нужно знать? (Мой собственный пользователь и root являются единственными членами fuseгруппы.

неделимый
источник
Привет, MBS, вы можете запустить ssh с ключом -v, чтобы показать все возможные ошибки. возможно, стоит сделать это, чтобы увидеть, есть ли ошибка при чтении файла. Кроме того, ваши ключи на целевом сервере должны иметь 600 разрешений.
Rqomey
Спасибо за быстрый ответ. ssh verbose: pastebin.com/Rm5X7y5p (я вернусь с подробным sshfs за минуту
неделимый
sshfs, использующий -o ssh_command='ssh -v'команду, просто зависает и ничего не выводит
неделимый
Я думаю, что, возможно, нашел проблему (или, по крайней мере, приблизился к ней). Я пытался смонтировать удаленное местоположение в / mnt / new_dir с помощью sudo. Если я подхожу к месту в моем местном доме, то это работает. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount, Могу ли я настроить своего пользователя так, чтобы у него были необходимые разрешения для монтирования в / mnt, чтобы другие пользователи могли использовать удаленные ресурсы?
неделимый
1
Я вижу, вы новичок в stackexchange, так что добро пожаловать. Но несколько советов: я знаю, что вы хотели бы попытаться анонимизировать себя, скрывая данные, но вы действительно не должны. Если бы вы предоставили эту информацию, указывающую, где вы монтировали монтировку, другие могли бы заметить проблему. Также не делайте ссылки на внешние сайты (pastebin), чтобы обеспечить вывод, включите его здесь. Наконец, если у вас есть решение, предоставьте его в качестве ответа и примите этот ответ, не ставьте «решено» в теме.
Патрик

Ответы:

12

Если вы используете, sudoто, вероятно, вы используете для монтирования учетные данные root, а я не верю, что вы этого хотите. Наверное, я бы не стал делать то, что вы просите. монтируется /mntкак user1 и как user2. Это будет сложно с группами и разрешениями пользователей. Если вы действительно хотите смонтировать каталог в / mnt для общего доступа, тогда вам действительно нужно монтировать его через системный уровень для всех пользователей autofs.

автомонтирование

Есть 3 метода, которые я знаю для автоматического монтирования монтирования, такого как этот.

SLM
источник
Это была именно проблема. Я отредактировал свой вопрос, включив в него шаги, которые я предпринял для изменения прав доступа к рассматриваемой папке, но пока он работает, я уверен, что это не лучшее решение. - Я еще не пытался использовать, так autofsкак не смог установить соединение sshfs до сих пор. Вы предлагаете добавить еще одну пару ключей к local:/root/.ssh/keyи remote:/[user]/.ssh/authorized_keys? Что должно быть chownи chmodбыть для того, чтобы local:/mnt/dirбыть? (Я хочу полный перманент для себя и только для чтения для других пользователей)
неделимый
@mbs - смотрите обновления
slm
1
Это URL для autofs, это правильно? Потому что это выглядит неправильно, когда вы запрашиваете это. Это показывает спорт в неанглийском языке.
Джеффри Андерсон