我希望能够允许用户使用我在 keygen 中生成的 openssh 密钥连接到我的 SFTP 服务器。我该如何实现这一点?
答案1
用户通常应该使用自己的密钥进行连接。
我假设您指的是从命令行连接,而 SFTP 使用 SSH 协议。因此,如果用户安装了 ssh-copy-id,他们将需要将其公共 SSH 密钥复制到其主目录中的 .ssh/authorized_keys。
如果他们还没有密钥,请生成密钥,让他们运行以下命令:
$ ssh-keygen -t rsa -b 2048
然后,如果他们安装了“ssh-copy-id”,请使用以下命令复制到您的服务器:
$ ssh-copy-id user@host
否则,以下 Bash 单行命令始终有效:
$ PUB="$(cat ~/.ssh/id_rsa.pub)"; ssh user@host "mkdir -p ~/.ssh; echo $PUB >> ~/.ssh/authorized_keys; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys"
只要在您的 sshd_config 中启用了公钥认证,用户现在就能够使用公钥认证访问您的 SFTP 服务器。