Я знаю, что можно подключиться к другому серверу по ssh без пароля, если на обоих серверах установлены ключи аутентификации. Но я хотел бы знать, можно ли разрешить пользователям с любого IP-адреса (известного / неизвестного) иметь беспарольный ssh-доступ к каталогу, в котором они могут сохранять свои данные самым простым способом?
Я ищу решение SSH, а не FTP.
Я бы сказал, что самым безопасным решением этой проблемы является создание SSH-ключа без пароля для каждой машины и добавление его в список authorized_keys на другом.
На машине 1 (как пользователь, который входит на другой сервер):
$ ssh-keygen -t rsa
$ ssh-add ~/.ssh/id_rsa
$ cat .ssh/id_rsa.pub
Если keygen запрашивает у вас пароль, просто нажмите Enter, чтобы создать ключ без пароля.
На машине 2:
~/.ssh/authorized_keys
для пользователя, с которым вы входите в систему.id_rsa.pub
(убедитесь, что это .паб файл, а не закрытый ключ) к файлу. Все id_rsa.pub
должен умещаться в одной строке.Когда это будет сделано, вы сможете сделать это с машины 1:
$ ssh username@machine-2
и просто войдите в систему, не вводя пароль. То же самое и с scp / sftp.
Если это не сработает, убедитесь, что у вас есть PubkeyAuthentication yes
в твоем /etc/ssh/sshd_config
Имейте в виду, что это серьезный угроза безопасности, поэтому вы определенно захотите сделать это в ограниченной среде, работающей под ограниченной оболочкой или только для учетных записей chrooted. Предложение @Kimvais о scponly находится на правильном пути.
В клиенте создайте ключ .ssh / id_rsa с пустой кодовой фразой - это создаст незашифрованный закрытый ключ. Затем скопируйте .ssh / id_rsa.pub с клиента в .ssh / authorized_keys на сервере - следите за правильными разрешениями! (0700 для .ssh, 0600 для .ssh / authorized_keys).
Теперь вы можете подключиться к серверу по ssh / scp / sftp, не вводя кодовую фразу.
Вы хотите использовать ключи для обеспечения безопасности, но не писать пароли. Как насчет чего-то вроде этого?
Если это openssh, вы можете установить PermitEmptyPasswords yes в вашем / etc / ssh / sshd_config
Я думаю, вы хотите разрешить только scp, поэтому вы, вероятно, настроили scponly как оболочка для пользователей.
Кроме того, не разрешайте доступ из Интернета :)
Я действительно сомневаюсь, что можно избежать пароля и / или ключа для аутентификации SSH. Причина в самом SSH, он создан для Безопасная оболочка доступ. Рассмотрите возможность переключения для FTP / telnet на небезопасный вариант.