Вход без пароля работает только с использованием непосредственно вызываемого sshd на сервере

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.

3
14.05.2015, 23:20
3 ответа

Как и другие, необходимо передать команды 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 .

1
27.01.2020, 21:31

Это SELINUX. Несмотря на то, что я остановился и отключил его, используя Systemctl , мне все еще нужно использовать / usr / bin / seteNforce 0 . Вход паролем сейчас работает, как и ожидалось.

0
27.01.2020, 21:31

У меня была (как мне кажется) аналогичная проблема, когда попытки 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

Ссылки:

0
27.01.2020, 21:31

Теги

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