在 *nix 服务器之间设置 SFTP 时,初始握手是可选的吗?

在 *nix 服务器之间设置 SFTP 时,初始握手是可选的吗?

我在 *nix 服务器之间设置 SFTP,如下所示:

  1. 通过运行以下命令在发送服务器上生成公钥:

    [user1@server1] $ /usr/local/bin/ssh-keygen -t rsa -b 1024

  2. 然后将“id_dsa.pub”文件复制到/home/remote_user1/.ssh/authorized_keys远程机器server2上的文件中。

  3. 连接到服务器2:

    $ sftp remote_user1@server2

然后系统会提示我输入密码一次以完成握手,然后对于所有后续 SFTP 连接,它会直接连接。

但最近另一个团队能够直接连接到我们的服务器而无需初始握手,通常我需要提供remote_user1的握手密码。

那么哪些配置更改(如果有)可能允许在没有密码的情况下完成握手......?任何可以帮助我更好地理解 SFTP 握手过程的链接也会非常有帮助,因为我在这个主题上找不到太多内容。

答案1

我不知道 SSH 中有任何这样的“握手”过程。然而,从您概述的步骤来看,您似乎没有告诉 SSH 使用密钥进行id_dsa身份验证,这会导致回退到密码身份验证。当您提供密码后,客户端上运行的某些密码或密钥缓存守护程序可能会存储该信息并在后续连接中重用它?

这有可能就是你所看到的吗?

id_dsa如果是这样,一旦远程服务器知道相应的公钥并且应该允许它用于身份验证,只需告诉 SSH 用于身份验证。

OpenSSH 的手册页显示:

-i identity_file
      Selects a file from which the identity (private key) for RSA or DSA authentication
      is read.  The default is ~/.ssh/identity for protocol version 1, and
      ~/.ssh/id_rsa and ~/.ssh/id_dsa for protocol version 2. (...)

如果 Solaris 是类似的,除非您在运行 ssh-keygen 时位于 ~/.ssh 中,否则 SSH 不知道使用./id_dsa.

答案2

事实证明,我设置的权限不正确.sshauthorized_keys需要我输入凭据。

~/.ssh目录可以具有权限700755,但775其他人不能访问该authorized_keys文件内容。授予其他人对该文件的写入权限将失去整个安全点。

~/.ssh/authorized_keys文件可以具有权限400(仅您可读)或600(仅您可写)。

相关内容