«Виртуальный киоск SSH». Работает ли «PermitEmptyPasswords yes»? – Как сделать пользователя ssh с пустым паролем, чтобы случайные пользователи могли его использовать?

Как сделать правильно защищенную учетную запись ssh с пустым паролем для запуска надежного двоичного кода? Я хотел бы сделать своего рода «виртуальный киоск ssh» для случайных пользователей, ограничив при этом «демо-приложение» за псевдошумом ssh.

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

(Предположим для цели этого вопроса, что мы доверяем /bin/cat или /usr/bin/cat – в зависимости от системы сервера, пожалуйста, проверьте свое, с which echo )

Во время работы с https://goo.gl/TjhrWd у меня возникла проблема с пустым паролем. PAM отклоняет его.

как он настроен

Вот конфигурация, которую я использую и работает, когда пароль установлен для пользователя cat – это также описано в https://goo.gl/TjhrWd :

 # below configured on Ubuntu Server 14.04 LTS addgroup catonly CHROOT=/var/chroot/cat # now let's make pseudo-shell binary, executing your ForceCommand (check source) # you can use bash as default shell instead, I prefer sth less bloated. cd /tmp wget 'https://gist.githubusercontent.com/gwpl/abcbc74c2bf377945a49097237edfb9b/raw/1993e8acc4bd66329959b1a658fcce4296d2a80c/only_exec_command.c' gcc only_exec_command.c -static -o only_exec_command mkdir -p "$CHROOT"/{bin,lib,lib64,dev/pts,home/cat} chown root:root /var/chroot "$CHROOT" # dependig on distro it might be /usr/bin/cat -> check with `which cat` useradd -d /home/cat -s /bin/only_exec_command -M -N -g catonly cat passwd -d cat # Let's make chroot cp /tmp/only_exec_command "$CHROOT"/bin/ cp /bin/cat "$CHROOT"/bin/ mknod -m 666 "$CHROOT"/dev/null c 1 3 ldd /bin/cat # tells us which libraries to copy cp /lib/x86_64-linux-gnu/libc.so.6 "$CHROOT"/lib cp /lib64/ld-linux-x86-64.so.2 "$CHROOT"/lib64 chown cat:catonly "$CHROOT"/home/cat chown root:root /var/chroot/cat /var/chroot /var $ $EDITOR /etc/ssh/sshd_config # add: Match user cat ChrootDirectory /var/chroot/cat X11Forwarding no AllowTcpForwarding no # dependig on distro it might be /usr/bin/cat -> check with `which cat` ForceCommand /bin/cat PasswordAuthentication yes PermitEmptyPasswords yes 

симптомы показывают, что это PAM

Но, пытаясь ssh , результаты запроса пароля и предоставление пустых результатов в отказе:

 ssh echo@1.2.3.4 echo@1.2.3.4's password: Permission denied, please try again. 

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

 /usr/sbin/sshd -ddd -p 1234 (...) debug1: userauth-request for user echo service ssh-connection method password [preauth] debug1: attempt 2 failures 1 [preauth] debug2: input_userauth_request: try method password [preauth] debug3: mm_auth_password entering [preauth] debug3: mm_request_send entering: type 12 [preauth] debug3: mm_auth_password: waiting for MONITOR_ANS_AUTHPASSWORD [preauth] debug3: mm_request_receive_expect entering: type 13 [preauth] debug3: mm_request_receive entering [preauth] debug3: mm_request_receive entering debug3: monitor_read: checking request 12 debug3: PAM: sshpam_passwd_conv called with 1 messages debug1: PAM: password authentication failed for echo: Authentication failure debug3: mm_answer_authpassword: sending result 0 debug3: mm_request_send entering: type 13 Failed password for echo from 192.168.1.1 port 43816 ssh2 debug3: mm_auth_password: user not authenticated [preauth] debug3: userauth_finish: failure partial=0 next methods="publickey,password" [preauth] 

2 Solutions collect form web for “«Виртуальный киоск SSH». Работает ли «PermitEmptyPasswords yes»? – Как сделать пользователя ssh с пустым паролем, чтобы случайные пользователи могли его использовать?”

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

 sudo sed -i 's/nullok_secure/nullok/' /etc/pam.d/common-auth 

должен выполнять эту работу.

Чтобы обеспечить надлежащую защиту доступа ssh, вы не должны разрешать авторизацию без авторизации. Настройте ключ RSA для аутентификации, а затем клиент может использовать это вместо пароля.

  • Аббревиатуры соединения Emacs ssh
  • Как программно изменить пароль на сервере IPSwitch с помощью клиента Linux?
  • Ограничение сеанса для сервера OpenSSH на Ubuntu Desktop 7.10
  • Vim приостанавливается случайным образом в течение минуты или около того за раз
  • ошибка при подключении удаленного сервера с помощью ssh
  • Почему FTP не работает через мой туннель ssh?
  • Я хочу подключиться к удаленному хосту без пароля, что лучший способ сделать это?
  • Укажите идентификационный файл (id_rsa) с помощью rsync
  • Почему не работает «ssh localhost nohup echo hello»?
  • в чем разница между `>> / dev / stderr` (с пробелом) и`> & 2`?
  • Все еще получать запрос пароля с помощью ssh с аутентификацией с открытым ключом?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.