服务器通过sftp连接如何免密

worktile 其他 239

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要让服务器通过sftp连接实现免密登录,您可以按照以下步骤进行操作。

    第一步:生成RSA密钥对
    首先,在需要实现免密登录的服务器上生成RSA密钥对。可以使用以下命令生成密钥对:

    ssh-keygen -t rsa
    

    执行该命令后,系统会提示选择密钥保存路径和设置密码等信息。如果您希望设置密钥保存路径和密码,则根据提示进行操作;如果不需要设置,可以直接按回车键。

    生成完成后,系统会在默认的用户家目录下的.ssh文件夹中生成两个文件:id_rsa和id_rsa.pub。其中,id_rsa是私钥,id_rsa.pub是公钥。

    第二步:将公钥复制到目标服务器上
    将生成的公钥文件(id_rsa.pub)中的内容复制到目标服务器上。可以使用以下命令将公钥复制到目标服务器:

    ssh-copy-id -i ~/.ssh/id_rsa.pub username@hostname
    

    其中,username是目标服务器的用户名,hostname是目标服务器的IP地址或域名。输入命令后,系统会提示输入目标服务器的密码,输入正确密码后,公钥将会被复制到目标服务器的.ssh文件夹中的authorized_keys文件中。

    第三步:配置.ssh文件夹权限
    为了确保免密登录的安全性,需要配置.ssh文件夹的权限。执行以下命令修改权限:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    

    这样就完成了服务器通过sftp连接的免密配置。

    以后,您就可以通过sftp命令或其他支持sftp的工具,直接使用私钥登录目标服务器,而无需再输入密码。注意,私钥(id_rsa)需要妥善保存,不要泄露给他人,以确保账户的安全性。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    通过配置免密连接,可以使得服务器通过SFTP连接时无需输入密码。下面是免密连接的步骤:

    1. 生成密钥对:使用ssh-keygen命令生成公钥和私钥的密钥对。在服务器上执行以下命令:
    ssh-keygen -t rsa
    

    按照提示可以选择密钥的存储路径和设置密码。

    1. 复制公钥到目标服务器:将生成的公钥复制到目标服务器的.ssh目录下的authorized_keys文件中。可以使用以下命令将公钥复制到目标服务器上:
    ssh-copy-id user@servername
    

    这里的user是目标服务器的用户名,servername是目标服务器的地址。

    1. 验证免密连接:执行ssh user@servername命令,如果成功连接而不需要输入密码,则表示免密连接已经成功配置。

    2. SFTP连接:使用sftp命令连接目标服务器,不再需要输入密码:

    sftp user@servername
    
    1. 可选:禁用密码登录:为了增强服务器的安全性,可以禁用密码登录。编辑/etc/ssh/sshd_config文件,在文件中找到PasswordAuthentication选项,并将其设置为no。之后重启sshd服务。

    通过以上步骤,可以实现服务器通过SFTP连接时无需输入密码,提高连接的方便性和安全性。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    服务器通过sftp连接实现免密的方法有多种,可以使用公钥认证、SSH配置等方式。以下是免密连接的操作流程:

    1. 生成公钥和私钥
      首先,在本地计算机上生成公钥和私钥对。可以使用OpenSSH自带的工具ssh-keygen生成。在命令行界面中输入以下命令:

      ssh-keygen
      

      然后按照提示输入保存公钥和私钥的文件名和密码。默认情况下,生成的公钥文件为id_rsa.pub,私钥文件为id_rsa

    2. 配置服务器
      接下来,将生成的公钥复制到服务器上。可以使用以下命令将公钥文件复制到服务器的~/.ssh/authorized_keys文件中:

      ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip
      

      需要将username替换为您在服务器上的用户名,server_ip替换为服务器的IP地址。

      如果服务器上没有~/.ssh/authorized_keys文件,可以使用以下命令创建它:

      mkdir ~/.ssh
      touch ~/.ssh/authorized_keys
      chmod 700 ~/.ssh
      chmod 600 ~/.ssh/authorized_keys
      
    3. 修改服务器SSH配置
      打开服务器上的SSH配置文件,一般为/etc/ssh/sshd_config,使用文本编辑器进行修改:

      sudo vi /etc/ssh/sshd_config
      

      在配置文件中找到并确保以下配置项处于启用状态(没有注释掉):

      PubkeyAuthentication yes
      PasswordAuthentication no
      

      然后保存退出。

    4. 重启SSH服务
      使用以下命令重启SSH服务使配置生效:

      sudo service ssh restart
      
    5. 测试连接
      现在,尝试使用SSH命令或sftp命令连接到服务器,您将不再需要输入密码即可成功连接:

      ssh username@server_ip
      sftp username@server_ip
      

    通过以上步骤,服务器通过sftp连接就可以实现免密了。请注意,为了确保安全性,私钥文件应该妥善保管,不应该泄露给他人。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部