В Windows я использую FileZilla, чтобы загружать / скачивать файлы на моем сайте WordPress через sftp, используя ключ ssh.
Теперь Linux - моя основная операционная система. В течение последнего месяца клиент FileZilla работал нормально на Ubuntu 16.04, но теперь он вылетает всякий раз, когда я его запускаю. Я искал в интернете и обнаружил, что это происходит со многими пользователями. К сожалению, у поддержки FileZilla есть только один ответ, если мы спросим их:
Ubuntu 16.04 - старая ОС, используйте 17.10 или последнюю версию Debian.
Я не хочу использовать 17.10. Поэтому я ищу альтернативу клиента FileZilla для Linux, которую я могу использовать в качестве клиента sftp с ключом ssh.
Я нашел gFTP (это старая программа, и я не уверен, насколько она безопасна?), Я также обнаружил, что могу использовать файловый менеджер Ubuntu для подключения к своему серверу. Это хорошая идея для подключения к серверу при использовании Nautilus или Caja?
На самом деле я не хочу вводить свое имя пользователя / пароль в диалоговое окно, которое появляется, когда я нажимаю Файл> Подключиться к серверу, вместо этого я хочу использовать свою клавишу .ppk
. Как я могу добавить это в Наутилусе или Кахе?
Можно использовать опцию Connect to Server
в Наутилусе, поскольку это показывают на следующем изображении.
Первый пример - sftp://victoria-pass/home/tri
- использование предопределило названный хост victoria-pass
и монтируется home/
каталог удаленного пользователя называют tri
.
Для использования этого подхода необходимо создать конфигурационный файл пользователя для локального ssh клиента. Файл нужно назвать config
и помещенный в каталог .ssh/
в доме пользователя: ~/.ssh/config
. Согласно примеру содержание файла должно быть:
Host victoria-pass # this is as 'nickname' of the connection
HostName victoria.org # or use the IP address
IdentityFile ~/.ssh/id_rsa # or provide the fill path to another key
User tri # use the actual name of the remote user
Port 1111 # provide the actual port of the remote server
# other parameters...
# setup each another Host in the same way...
Измените полномочия файла:
chmod 600 ~/.ssh/config
Кроме того, теперь необходимо смочь соединиться с каждым из этих хостов командой как:
ssh victoria-pass
Второй пример - sftp://tri@victoria.org:1111/home/tri
- шоу, как подключить к удаленному ssh (sftp) сервер, не используя предопределенный ~/.ssh/config
файл с пользовательским ssh портом.
Основные недостатки этого подхода - это, если файл аутентификации не ~/.ssh/id_rsa
необходимо обеспечить его заранее командой ssh-add
. Например, если файл аутентификации называют file.pem
:
ssh-add /full/path/to/the/authentication/file.pem
Я думаю, что необходимо сделать этот каждый раз, когда Вы перезапускаете локальную машину, или необходимо включать вышеупомянутую команду в ~/.profile
файл.
Вот шаги, как установить gFTP для использования ключей SSH.
В FTP меню нажимают на Preferences;
Перейдите к вкладке SSH;
Заполните поле SSH Extra Params этим значением:
-o IdentityFile=/home/<your user>/.ssh/id_rsa
Изменение <user name>
с Вашим реальным именем пользователя. Или используйте:
-o IdentityFile=~/.ssh/id_rsa
В выборе главного окна gFTP SSH2 как тип соединения;
Введите имя целевого узла или IP-адрес;
Установите Порт SSH целевой машины (если это не значение по умолчанию - 22
);
Введите Пользователя для соединения SSH;
Введите Пароль своего ключа SSH (если существуют некоторые);
Хит входит.
Вы могли смонтировать удаленный каталог (или целая файловая система) через инструмент командной строки sshfs
. Затем Вы могли управлять им "локально", как Вы желаете. Это - мой предпочтительный путь. Давайте предположим, что монтирующийся каталог ~/mount
и Вы хотите смонтировать корневой каталог удаленного пользователя:
sshfs user@host.name.or.ip:/home/<user> /home/<local-user>/mount/
Или если Вы создали ~/.ssh/config
файл:
sshfs host-name:/home/<remote-user> /home/<local-user>/mount/
Кроме того, Вы могли создать также /etc/fstab
запись - ссылки:
Отметьте, ранее ли Вы, использовали ключ PPK, что означает Закрытый ключ PuTTY, необходимо преобразовать его, потому что, в отличие от CloneZilla, вышеупомянутые инструменты не могут считать этот формат. Поскольку это имеет целью Вас, должен использовать инструмент puttygen
это - часть пакета putty-tools
:
sudo apt install putty-tools
Теперь можно преобразовать ключ таким образом:
puttygen input-key-filename.ppk -O private-openssh -o output-key-filename.pem
Благодаря @steeldriver для этого примечания. Вот источник и немного дополнительных ссылок:
В то время как все подходы используют тот же метод соединения - SSH - безопасность, которую они обеспечивают, должно быть эквивалентным. Из Википедии:
Безопасный Shell (SSH) является криптографическим сетевым протоколом для работы сетевыми службами надежно по незащищенной сети... SSH обеспечивает безопасный канал по незащищенной сети в клиент-серверной архитектуре, соединяя клиентское приложение SSH с сервером SSH...
Шифрование, используемое SSH, предназначается для обеспечения конфиденциальности и целостности данных по незащищенной сети, такой как Интернет... SSH использует криптографию с открытым ключом, чтобы аутентифицировать удаленный компьютер и позволить этому аутентифицировать пользователя, если необходимо...
Один путь состоит в том, чтобы использовать автоматически сгенерированных пар общедоступных с закрытым ключом, чтобы просто зашифровать сетевое соединение и затем использовать аутентификацию по паролю для вхождения в систему...
Другой должен использовать вручную сгенерированную пару общедоступную с закрытым ключом для выполнения аутентификации, позволяя пользователям или программам входить в систему, не имея необходимость указывать пароль. В этом сценарии любой может произвести пару соответствия различных ключей (общедоступный и частный)...