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
группы.
источник
-o ssh_command='ssh -v'
команду, просто зависает и ничего не выводитsshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount
, Могу ли я настроить своего пользователя так, чтобы у него были необходимые разрешения для монтирования в / mnt, чтобы другие пользователи могли использовать удаленные ресурсы?Ответы:
Если вы используете,
sudo
то, вероятно, вы используете для монтирования учетные данные root, а я не верю, что вы этого хотите. Наверное, я бы не стал делать то, что вы просите. монтируется/mnt
как user1 и как user2. Это будет сложно с группами и разрешениями пользователей. Если вы действительно хотите смонтировать каталог в / mnt для общего доступа, тогда вам действительно нужно монтировать его через системный уровень для всех пользователейautofs
.автомонтирование
Есть 3 метода, которые я знаю для автоматического монтирования монтирования, такого как этот.
источник
autofs
как не смог установить соединение sshfs до сих пор. Вы предлагаете добавить еще одну пару ключей кlocal:/root/.ssh/key
иremote:/[user]/.ssh/authorized_keys
? Что должно бытьchown
иchmod
быть для того, чтобыlocal:/mnt/dir
быть? (Я хочу полный перманент для себя и только для чтения для других пользователей)