我正在尝试使用 Docker 的 Alpine Linux 映像和 OpenSSH。sshd_config
alpine 附带的文件默认将所有内容都注释掉。我只是取消评论Port 22
。我认为这是最安全的配置(但希望得到一些关于此假设是否正确的反馈)。
然后,我运行ssh-keygen -q
生成用户密钥(对于 root)并ssh-keygen -A
生成主机密钥。然后我cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
就可以使用密钥登录。
当我从主机登录时,ssh localhost
系统会提示我接受主机密钥,然后我就会进入。所以一切似乎都工作正常。但是,如果我尝试从 docker conatainter / 主机外部进行连接,则会提示输入密码。这应该发生吗?我的假设是,由于我只配置了Port
参数,其他所有内容都将被关闭,包括密码身份验证。
答案1
但是,如果我尝试从 docker conatainter / 主机外部进行连接,则会提示输入密码。这应该发生吗?我的假设是,由于我只配置了端口参数,其他所有内容都将被关闭,包括密码身份验证。
是的。默认情况下,密码身份验证处于启用状态,因为它有时是访问新安装的服务器的唯一方法。但您可以简单地使用ChallengeResponseAuthentication no
和PasswordAuthentication no
在您的sshd_config
.