Как указать ключ в SSHFS?

70

У меня есть вопрос, на который я не смог найти ответ. У меня есть два компьютера, оба из которых работают под управлением Ubuntu Linux 12.04. Я настроил свой первый компьютер («домашний»), чтобы иметь возможность SSH подключаться ко второму компьютеру («удаленному») с использованием аутентификации с открытым / закрытым ключом RSA.

Это не первое SSH-соединение, которое настроено с использованием аутентификации по ключу на моем домашнем компьютере, поэтому на моем домашнем компьютере есть несколько закрытых ключевых файлов id_rsa (каждый из которых предназначен для другого компьютера, на котором установлен SSH). Таким образом, я могу успешно SSH только тогда , когда я указать файл_ключа (в ssh, то -iопция), используя ssh username@ipaddress -i path/to/keyfile/id_rsa.2.

Это прекрасно работает. Тем не менее, я также хотел бы использовать sshfs, который монтирует удаленную файловую систему. В то время как, sshкажется, хорошо работает с несколькими ключами, я не могу найти способ sshfsиспользовать правильный закрытый ключ ("id_rsa.2").

Есть ли способ sshfsсделать это?

JL
источник
Брелок хорошо работает для меня в этом сценарии ...
jasonwryan

Ответы:

94

Вот что работает для меня:

sshfs me@x.x.x.x:/remote/path /local/path/ -o IdentityFile=/path/to/key

Вы можете понять это с помощью man sshfs:

-o SSHOPT = VAL ssh параметры (см. man ssh_config)

man ssh_config

IdentityFile

Указывает файл, из которого читается идентификационная информация аутентификации пользователя DSA, ECDSA или DSA.

лютик золотистый
источник
1
Спасибо! @goldilocks, я полностью пропустил строку IdentityFile на sshfsстранице руководства . Это именно то, что я искал, а также. Я только что попробовал ваше решение, и оно отлично работает. Я ценю помощь!
JL
1
Эта команда не работает на macOS Sierra
basZero
1
IdentityFileпутевая заметка. При работе sshfsс sudoиспользованием ~в IdentityFileпути относится к дому суперпользователя, который не может быть там , где файл RSA является. Используйте что-то вроде /Users/<username>/.sshэтого.
Аарон
20

Что вам нужно сделать, это указать, какой закрытый ключ использовать в ~/.ssh/configфайле. например:

Host server1.nixcraft.com
    IdentityFile ~/backups/.ssh/id_dsa
Host server2.nixcraft.com
    IdentityFile /backup/home/userName/.ssh/id_rsa
Стивен Ю
источник
1
Спасибо! @ Steven Вы, я не понимал, что sshfsчитает файлы .ssh / config (хотя теперь я вижу, что пропустил аналогичный ответ из чьего-то предыдущего поста, на stackoverflow.com/a/13638806/1940466 ). Это прекрасно знать. Что бы это ни стоило, я хотел бы принять и ваши ответы, и ответы @goldilocks, но я не могу. У меня также недостаточно репутации, чтобы проголосовать за ваш ответ. Я очень ценю ответ, хотя!
JL
3
sshfs -o ssh_command='ssh -i path/to/keyfile/id_rsa.2' username@ipaddress:/path /local/path
user278801
источник
спасибо, этот ответ работал на меня в Arch Linux для монтирования файловой системы Android
Эдвард Торвальдс,