Как надежно позволить scp, но не ssh

Классическое место для помещения одноразового материала как это было rc.local.

От Fedora 16 информации о версии:

/etc/rc.d/rc.local local сценарий настройки больше не включается по умолчанию. Администраторы, которым нужна эта функциональность просто, должны создать этот файл, сделать ее исполняемым файлом, и она будет работать на начальной загрузке.

Я сказал бы, создают /etc/rc.d/rc.local как это:

#!/bin/sh
/path/to/tpfand

и chmod +x /etc/rc.d/rc.local и необходимо быть хорошими для движения.

7
24.08.2013, 00:04
4 ответа

Хорошо, Вы испортили вещи.

Из того, что я понял, Вы просто хотите скопировать файл от панели до нечто:

[file]  *bar* ------copy------> *foo*

Чтобы сделать просто что, Вы сначала ssh к панели затем scp файл к нечто:

        *bar* -------ssh------> *foo* [file]

затем:

        *foo* ----scp[file]---> *bar*

Если Вы делаете как это, Вы делаете его небезопасно и неправильно. Все, что необходимо сделать, является scp файл назад Вам непосредственно:

bob@foo$ scp bob@bar:/guest/buzz ~

другими словами:

        *foo* <---scp[file]---- *bar*

Теперь существует несколько проблем, которые будут решены   …

Как знать, где файл?

a) Используйте SSH в другом терминале

Просто откройте второй терминал, SSH к панели, найдите свой файл и скопировать/вставить путь к первому.

b) Используйте SFTP

SFTP (не связанный с FTP, ни FTPS всегда!) реализован в OpenSSH и доступен по умолчанию. Просто SFTP к серверу и использованию подобные FTP команды для нахождения Вас файлами и get их.

c) Используйте GUI

Filezilla или Nautilus, например, могут просмотреть удаленные доли SFTP/SSH.

d) Настройте сертификаты

При установке соединения сертификата можно сделать заполнение клавишей Tab на локальной стороне, а также на удаленной стороне! Например, с Вашим buzz пример, можно сделать:

bob@foo$ scp bob@bar:/guest/[tab][tab]

и ожидайте немного списка файлов, содержавшихся в удаленной/guest/папке.

Как настроить SSH с сертификатами?

a) Если не уже сделанный, генерируйте свою персональную пару ключей RSA

При установке клиента OpenSSH можно сделать это путем ввода

bob@foo$ ssh-keygen -t rsa

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

На самом деле Вы генерируете 2 файла:

  • / Пользователи / [yourusername]/.ssh/id_rsa
  • / Пользователи / [yourusername]/.ssh/id_rsa.pub

Первый, *id_rsa* должен быть частным. По умолчанию, ssh-keygen сделает все, что это может, чтобы не обнародовать его (использующий разрешение доступа к файловой системе). Вот почему это также попросит у Вас (дополнительно) пароль. Не будьте слишком параноиками с этим, но просто помните *id_rsa* == персональный ключ == частный. Этот ключ никогда не должен оставлять Ваш компьютер.

Второй общедоступен. Это требует, чтобы огромное количество производительности компьютера возвратило Ваш закрытый ключ из этого общедоступного сертификата (я действительно имею в виду HUUUUUUGE). Это совершенно безопасно совместно использовать его с целым миром. Даже в очень маловероятном событии, что NSA или подобные действительно хотят потратить миллионы долларов, взламывающих Ваш открытый ключ, Ваш MacBook все еще будет безопасным   … (или нет. Думая об этом, если кто-то хочет потратить так много, Вы в беде :)

Этот общедоступный сертификат на самом деле, что Вы поставите панель удаленного сервера.

b) Как я помещаю свой общедоступный сертификат на сервер?

Две опции.

  1. Использовать ssh-copy-id при наличии: bob@foo$ ssh-copy-id bob@bar.Готово.
  2. Если это не, копия ~/.ssh/id_rsa.pub к панели:

    bob@foo$ sftp ~/.ssh/id_rsa.pub bob@bar:pub_cert

(здесь, Вы скопировали свой общедоступный сертификат id_rsa.pub от .ssh/, в Вашем персональном ~ папка к панели удаленного компьютера в домашней папке пользовательского боба. Это - значение по умолчанию. Также отметьте это id_rsa.pub был переименован к pub_cert в процессе. Я использовал sftp только, чтобы показать Вам, что это может использоваться точно как scp).

Теперь, мы скопируем этот сертификат правильному местоположению:

bob@foo$ ssh bob@bar

Теперь Вы находитесь в личной папке боба в панели.

bob@bar$ cat pub_cert >> .ssh/known_hosts

(здесь, Вы отобразили содержание pub_cert с cat. Но вместо того, чтобы печатать его на экран, Вы перенаправляете этот вывод в файл: .ssh/known_hosts. Обратите внимание что перенаправление с > означал бы, "заменяют содержание файла с этим потоком" в то время как >> означает, "добавляют поток в конце существующего файла").

c) Результат?

Теперь Вы можете scp/sftp/ssh к панели так, как Вы хотите, не имея необходимость обеспечивать пароль. Можно также автоматически заполнить локальные и удаленные пути с помощью [вкладка] ключ.

d) Что относительно моей безопасности Mac?

С этим способом сделать это, Вам даже не нужно выполнение сервер SSH на Вашем компьютере. Только клиент SSH ( scp/sftp/ssh программы). Это безопасно для Вас, даже если панель поставлена под угрозу.

e) Что я делал точно с этими ключами/сертификатами?

Сначала Вы генерировали несколько файлов: закрытый ключ и общедоступный сертификат. Можно сделать много вещей, связанных с безопасностью и аутентификацией с ними. Но в нашем случае, с маленьким упрощением, они используются этот путь:

Когда Вы попытаетесь соединиться с панелью, Вы будете рекламировать это, у Вас есть сертификат, который можно использовать для соединения. панель осмотрит различные местоположения в системе, включая ~/.ssh/known_hosts. Это найдет сертификат, который Вы рекламировали, и используйте его, чтобы отправить Вам зашифрованные данные.

На самом деле общедоступные сертификаты могут зашифровать материал!

Теперь здорово, но как нечто может понять это? Используя Ваш закрытый ключ.

Закрытые ключи могут дешифровать материал, зашифрованный с соответствующим общедоступным сертификатом!

Это - то, что называют асимметричным шифрованием.

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


Теперь, что, если Вы действительно действительно хотите сделать вещи Ваш путь и SCP назад к нечто?

Вы просто просите проблемы. Но смягчать последствие возможного compromission, можно настроить chrooted SFTP- только сервер. scp и ssh не будет больше работать, но sftp, Filezilla и материал собираются работать.

касательно: https://www.allthingsdigital.nl/2013/05/12/setting-up-an-sftp-only-account-with-openssh/

6
27.01.2020, 20:15

Если Вы смотрите на формат authorized_keys файл, Вы заметите, что можно ограничить команду, позволенную использоваться с определенным ключом. Это - метод, что я ранее раньше позволял действие SSH с указанным ключом только к определенной команде, scp в этом случае. Посмотрите на использование страницы справочника man authorized_keys .

5
27.01.2020, 20:15
  • 1
    , как каждый смотрит 'на человека authorized_keys'? Я ввел его в терминале.. просто ошибка. –  Hermann Ingjaldsson 24.08.2013, 21:38
  • 2
    у меня есть Ubuntu и она имеет эту страницу справочника. Другие версии Linux, по-видимому, не имеют этой страницы справочника (из Вашего комментария). Я уверен, что можно использовать браузер и искать authorized_keys в Google, не так ли? –  mdpc 25.08.2013, 01:08

Вы могли бы хотеть посмотреть на https://github.com/scponly/scponly/wiki/Download, или можно ограничить пользователя sftp только как так...

# usermod -s /usr/libexec/openssh/sftp-server whoever
2
27.01.2020, 20:15

Как другие я предложил бы, чтобы Вы непосредственно скопировали со своей другой машины:

bob@foo$ scp bar:/guest/buzz ~

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

bob@foo$ ssh -A bar
password:
bob@bar$ scp /guest/buzz bar:
# no password prompt

Вы могли бы также скопировать открытый ключ в панель затем не будет подсказки пароля, или Вы могли бы добавить пароль к ключу, ввести его, когда ssh'ing в панель затем, из-за ssh агента, Вам не будет нужен он для соединения наоборот будучи безопасными.

1
27.01.2020, 20:15

Теги

Похожие вопросы