Очевидно:
Ctrl-X: сокращение
Ctrl-C: копия
Ctrl-V: вставка
те, я использую большинство!
Некоторые другие:
В большинстве текстовых редакторов:
Ctrl-F: найти
Ctrl-H: Найти и заменить
В большинстве браузеров:
Ctrl-T: Откройте новую вкладку
Щелкните при нажатой клавише Ctrl по ссылке или Средней кнопке мыши на ссылке: откройте ссылку на новой вкладке
оболочка rssh (http://pizzashack.org/rssh/) разработана для точно этой цели.
Так как RHEL/CentOS 5.2 не включает пакет для rssh, Вы могли бы посмотреть здесь для получения об/мин: http://dag.wieers.com/rpm/packages/rssh/
Использовать его просто установило его как оболочку для нового пользователя как это:
useradd -m -d /home/scpuser1 -s /usr/bin/rssh scpuser1
passwd scpuser1
.. или измените оболочку для существующей как это:
chsh -s /usr/bin/rssh scpuser1
.. и редактирование /etc/rssh.conf
для конфигурирования оболочки rssh - особенно не комментируют allowscp
строка для включения доступа SCP для всех rssh пользователей.
(Можно также хотеть использовать chroot для хранения пользователей содержавшимися в их домах, но это - другая история.)
Я - путь поздно к этому, но Вы могли использовать ssh ключи и указать точную команду, позволенную в их ~/.ssh/authorized_keys файл, например.
без перенаправления портов, без имуществ, управляйте = "scp исходная цель" ssh-dss...
Вы, возможно, должны использовать PS для на цели для установки правильных настроек команды.
PS: Если Вы запускаете тест scp команда с, "-v" Вы видите что-то вроде этого
debug1: Sending command: scp -v -t myfile.txt
Вы отметите, что "-t" является недокументированной scp опцией, используемой программой на дальнем конце. Это дает Вам идею того, что необходимо поместить в authorized_keys.
Править: Можно найти больше информации (с несколькими ссылками) в этом вопросе о StackOverflow.
Вот рабочий пример этого, поскольку пользователь назвал backup_user
на стороне сервера.
~backup_user/.ssh/authorized_keys
содержание на стороне сервера (еще с некоторыми ограничениями безопасности):
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="scp -v -r -d -t ~/CONTENT" ssh-rsa AAAAMYRSAKEY...
Создайте ссылку в ~backup_user/, который связывается с каталогом, где содержание должно быть доступным.
$ ln -s /path/to/directory/with/accessible/content ~backup_user/CONTENT
Теперь, от стороны клиента, следующая команда должна работать:
scp -v -r -P 2222 -i .ssh/id_rsa_key_file path/to/data backup_user@SERVER:~/CONTENT
Что эта команда сделайте:
-v
и от команды и от authorized_keys файла)-r
и от команды и от authorized_keys файла, если Вы не хотите делать рекурсивную копию),-P 2222
от команды)-i .ssh/id_rsa_key_file
path/to/data
будет скопирован в /path/to/directory/with/accessible/content/
Для создания копии файла (или несколько) от сервера до клиента необходимо создать сценарий оболочки, который обрабатывает это, как описано здесь
Я немного опаздываю стороне, однако я предложу, чтобы Вы смотрели на ForceCommand
директива OpenSSH.
Subsystem sftp internal-sftp
Match group sftponly
ForceCommand internal-sftp
Предоставленный, это - SFTP и не SCP, но он достигает той же цели, более надежно, чем с ограниченной оболочкой. Кроме того, Вы можете chroot пользователь, если Вы хотите.
Я использую MySecureShell, чтобы сделать это. Можно настроить другие ограничения также.
https://github.com/mysecureshell/mysecureshell
Предельные соединения с SFTP/SCP только. Никакой доступ оболочки.
Я рекомендовал бы использовать scponly.
Это - ограниченная оболочка, которая позволяет пользователям делать, на что это походит, файлы SCP к серверу, но не на самом деле входят в систему. Информация и загрузки исходного кода для программного обеспечения доступны здесь, и предварительно скомпилированные RPM-пакеты доступны через ВКУСНЫЕ Репозитории EPEL.
После того, как установленный, необходимо будет настроить каждую учетную запись пользователя, к которой Вы хотите ограничить доступ, использовать недавно установленную ограниченную оболочку. Можно сделать это вручную через/etc/passwd или использовать следующую команду: usermod -s /usr/bin/scponly USERNAME
Это не самое изящное решение, но вы можете добавить что-то подобное в пользователей .bashrc
if [ "$TERM" != "dumb" ]; then
exit
fi
Я обнаружил, что пользователи SCP получают ТЕРМИН "тупой", а другие будут обычно получают vt100.
Я полагаю, что пользователь мог бы использовать scp через новый .bashrc, что делает это не лучшим решением, но для быстрого и грязного решения это сработает
Я нашел хороший способ - использовать функцию command = "..." файла authorized_keys. (Предложено мне на этой странице )
Команда, которую вы запустите, будет проверять аргументы, начинающиеся с scp (и rsync).
Вот файл authorized_keys:
# authorized_keys
command="/usr/local/bin/remote-cmd.sh" ssh-rsa.....== user@pewpew
Вот содержимое remote-cmd.sh:
#!/bin/bash
# /usr/local/bin/remote-cmd.sh
case $SSH_ORIGINAL_COMMAND in
'scp'*)
$SSH_ORIGINAL_COMMAND
;;
'rsync'*)
$SSH_ORIGINAL_COMMAND
;;
*)
echo "Access Denied"
;;
esac
. Думаю, вам, вероятно, все равно потребуется защитить файл authorized_keys пользователя, но моей целью было иметь ключ без пароля, который я мог бы использовать для резервных копий, без необходимости создавать совершенно новый пользователь, и у ключа нет оболочки (хорошо, легко)