Richard Stallman сказал: нет никакой системы, но GNU, и Linux является одним из своих ядер.
Linus сказал: Ну, я думаю, что это выравнивается по ширине, но это выравнивается по ширине при фактическом создании распределения GNU Linux... тем же способом, которым я думаю, что "Red Hat Linux" прекрасен, или "SuSE Linux" или "Debian Linux", потому что при фактическом создании собственного распределения Linux Вы добираетесь для именования вещи, но вызов Linux в общем "GNU Linux" я думаю, просто смешно.
Существует противоречие когда дело доходит до имени http://en.wikipedia.org/wiki/GNU/Linux_naming_controversy
Но, давайте посмотрим то, что является системой GNU/Linux или Linux: На самом деле это - ядро Linux со многим важным GNU 'компоненты' как gcc.
Я не вижу вреда в вызове его GNU/Linux, и я не вижу что: GNU на основе дистрибутива Linux или Linux на основе средств дистрибутива GNU, потому что каждые из них играемый и играют роль в каждой системе GNU/Linux.
Как и другие, необходимо передать команды get
в качестве входных данных в sftp
. Это можно сделать с помощью документа . Кроме того, обратите внимание, что команда sftp
не содержит команды mget
.
sftp "username@server:$path" <<'EOF'
get ubpbilp* ./
get cust.cmp* ./
get bunc.cmp* ./
EOF
SFTP не очень удобно создавать сценарии. Если сервер разрешает scp, используйте его. Если вы просто хотите скопировать некоторые файлы, это проще. Передать узоры можно в командной строке scp
; не забудьте процитировать их, чтобы они были развернуты на удаленной стороне, а не локальной оболочкой. Не забудьте финал .
указывает, что местом назначения является текущий каталог.
scp -p \
"username@server:$path/ubpbilp*" \
"username@server:$path/cust.cmp*" \
"username@server:$path/bunc.cmp*" \
.
При необходимости копирования файлов установите SSHFS . SSHFS обеспечивает доступ к удаленным файлам через обычный механизм файловой системы. Он использует SFTP под колпаком, поэтому, если сервер разрешает SFTP, можно использовать SSHFS, при условии, что компьютер разрешает клиенту FUSE .
mkdir server-dir
trap 'fusermount -u server-dir; rmdir server-dir' 0 HUP INT TERM
sshfs "username@server:$path" server-dir
cp -p server-dir/ubpbilp* cust.cmp* bunc.cmp* .
-121--154314- Невозможно «открыть PTY для программы». PTY является псевдотерминалом; для него требуется оконечное устройство. Если вы хотите связаться с программой непосредственно через терминал, программа должна создать терминал (т.е. вести себя как эмулятор терминала).
Вместо этого можно запустить программу на терминале , например, на экране . Экран упрощает ввод и считывание выходных данных из программ.
Однако для того, что вы делаете, терминал может привести к бесполезным осложнениям. Сокет - это верный инструмент для того, что вы хотите сделать - прямая двунаправленная связь между двумя программами. (Для однонаправленной связи труба будет правильным инструментом.) Единственное преимущество использования терминала заключается в том, что он не управляет одним из концов и настаивает на буферизации выходных данных по блокам, а не по линиям, если выходные данные не находятся на терминале.
-121--139421- Это проблема SELinux, вызванная тем, что ваш домашний каталог находится в странном расположении. То, что ты сделал, чтобы отключить его, не так. SELinux не является службой, и systemctl status selinux
просто сообщает вам , что (« не найден (причина: нет такого файла или каталога) »).
Вы могли запустить setenforce permissive
или иным образом отключить SELinux, но это вроде того, как снять двери с вашего дома только потому, что вы неправильно ваши дома один раз. Необходимо выполнить команду chcon -t ssh_home_t ~/.ssh/
.
Откуда я знаю? Потому что это тип для файлов в ~/.ssh
в моей системе. Но я мог установить sepolicy
из пакета policycoreutils-devel
и запустить sepolicy manpage -t ssh_d
, чтобы создать ssh _ selinux.8
man страницу, на которой документируются фактические стратегический.
Действительно, я большинство предлагаю забыть все это,просто установите накопитель на /home
, а не /mnt/startB
, а затем запустите restorecon -R -v/home
.
Это SELINUX. Несмотря на то, что я остановился и отключил его, используя Systemctl
, мне все еще нужно использовать / usr / bin / seteNforce 0
. Вход паролем сейчас работает, как и ожидалось.
У меня была (как мне кажется) аналогичная проблема, когда попытки SSH для пользователей, чьи домашние каталоги были основаны на общем ресурсе NFS, неоднократно отклонялись, и только следующее загадочное сообщение записывалось в вывод (debug / verbose) of ssh
:
debug1: key_parse_private2: missing begin marker
Как указано в других ответах, это оказалось проблемой SELinux. Однако, похоже, есть решение более тонкое, чем полное отключение принудительного применения SELinux.
На хосте, который обслуживает домашние каталоги, выполните следующую команду, чтобы SELinux пометил каталог, содержащий домашние каталоги пользователей, так же, как каталог, содержащий домашний каталог по умолчанию / home
:
sudo semanage fcontext -a -e /home /path/to/custom/homedir/container/on/server
Затем запустите эту команду, чтобы рекурсивно сбросить метки SELinux в домашних каталогах:
sudo restorecon -R /path/to/custom/homedir/container/on/server
Если вы используете NFS (как в моем случае), выполните следующую дополнительную команду на каждом клиенте, где установлен домашние каталоги монтируются, чтобы настроить SELinux, чтобы разрешить использование подключенных к NFS домашних каталогов:
sudo setsebool -P use_nfs_home_dirs on
Ссылки: