linux服务器ssh如何配置免密码登录

fiy 其他 42

回复

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

    要配置Linux服务器实现SSH免密码登录,需要按照以下步骤进行操作:

    1. 确保本地计算机已经安装了OpenSSH客户端,例如Linux系统上的OpenSSH包或者Windows系统上的PuTTY客户端。

    2. 在本地计算机上生成公钥和私钥对。可以使用ssh-keygen命令生成密钥对,不过也有一些图形界面工具可以方便地生成密钥对。

    3. 将公钥拷贝到服务器上。可以使用ssh-copy-id命令将公钥拷贝到服务器上,也可以手动将公钥内容复制到目标用户的~/.ssh/authorized_keys文件中。

    4. 配置服务器的SSH服务。编辑服务器上的SSH配置文件(通常位于/etc/ssh/sshd_config)并确保以下配置项的值为yes:

      • PubkeyAuthentication:启用公钥身份验证。
      • RSAAuthentication:启用RSA密钥的身份验证。
      • PasswordAuthentication:禁用密码身份验证(可选)。
    5. 重启SSH服务。根据不同的Linux发行版,可以使用service sshd restart、systemctl restart sshd或者/etc/init.d/sshd restart等命令重启SSH服务。

    6. 确保服务器上的/.ssh目录和授权文件的访问权限正确。授权文件应该设置为600,/.ssh目录应该设置为700。

    配置完成后,就可以通过SSH免密码登录到服务器了。在本地计算机上使用ssh命令连接到服务器时,不再需要输入密码,而是使用私钥进行身份验证。

    值得注意的是,SSH免密码登录需要确保密钥对的私钥文件具有足够的安全性保护,以防止私钥被其他人获取导致安全风险。

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

    要在Linux服务器上配置SSH免密码登录,需要执行以下步骤:

    1. 生成SSH密钥对:
      使用ssh-keygen命令生成密钥对。打开终端并运行以下命令:

      ssh-keygen -t rsa
      

      这将生成一个公钥和私钥文件,通常存储在~/.ssh目录中。默认情况下,生成的文件名为id_rsa.pub(公钥)和id_rsa(私钥)。

    2. 将公钥复制到目标服务器:
      执行以下命令将公钥复制到目标服务器上的~/.ssh/authorized_keys文件中:

      ssh-copy-id username@server_ip
      

      其中,username是目标服务器上的用户名,server_ip是目标服务器的IP地址。

      如果ssh-copy-id命令不可用,可以手动将公钥内容添加到目标服务器的~/.ssh/authorized_keys文件中。

    3. 配置sshd_config文件:
      在目标服务器上,打开/etc/ssh/sshd_config文件,并确保以下配置项处于启用状态:

      PubkeyAuthentication yes
      PasswordAuthentication no
      ChallengeResponseAuthentication no
      

      如果有更改,请保存文件并重新加载SSH服务。

    4. 测试连接:
      在本地机器上使用以下命令测试连接到目标服务器:

      ssh username@server_ip
      

      如果一切顺利,您将能够无需密码即可登录到目标服务器。

    5. 可选:添加多个密钥对:
      如果有多个本地机器需要连接到同一目标服务器,可以为每个本地机器生成单独的密钥对,并将公钥都添加到目标服务器的~/.ssh/authorized_keys文件中。

    请注意,通过SSH免密码登录时,请确保您的私钥文件的权限设置为600(chmod 600 ~/.ssh/id_rsa),以防止未授权的访问。

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

    在Linux服务器上配置SSH免密码登录可以提高安全性和方便性。下面是一种常见的方法,来实现SSH免密码登录。

    1. 生成SSH密钥对

    首先,需要在客户端生成SSH密钥对(公钥和私钥)。在终端中运行以下命令:

    ssh-keygen -t rsa
    

    按照提示,选择密钥存储位置(默认为~/.ssh/id_rsa)和密码(可选择)

    1. 拷贝公钥到服务器

    接下来,将生成的公钥拷贝到服务器。假设服务器的IP地址为<server_ip>,用户名为<username>。运行以下命令:

    ssh-copy-id <username>@<server_ip>
    

    此命令会将公钥拷贝到服务器的~/.ssh/authorized_keys文件中。

    1. 配置服务器

    登录到服务器上,修改SSH配置文件。运行以下命令:

    sudo vi /etc/ssh/sshd_config
    

    找到PasswordAuthentication行,将其改为no。这样可以禁用密码登录。

    然后找到PubkeyAuthentication行,确保其值为yes。这样可以启用公钥验证。

    保存并关闭文件。

    1. 重启SSH服务

    运行以下命令重启SSH服务:

    sudo systemctl restart sshd
    
    1. 测试免密码登录

    现在,再次尝试通过SSH登录服务器,应该不再需要输入密码,直接验证成功。

    ssh <username>@<server_ip>
    

    如果可以成功登录,则表示免密码登录已经配置成功。

    可能遇到的问题和解决方法:

    • 如果目标用户的.ssh目录或authorized_keys文件不存在,遇到权限不足的错误,可以运行以下命令创建目录和文件,并设置正确的权限:

      mkdir -p ~/.ssh
      chmod 700 ~/.ssh
      touch ~/.ssh/authorized_keys
      chmod 600 ~/.ssh/authorized_keys
      
    • 如果仍然需要输入密码才能登录,可以检查服务器的/etc/ssh/sshd_config文件中是否启用了AuthorizedKeysFile选项。确保其值为%h/.ssh/authorized_keys

    • 如果客户端无法找到私钥,默认情况下,SSH客户端会在~/.ssh目录下查找私钥。可以通过在SSH命令中指定私钥文件来解决:

      ssh -i /path/to/private_key <username>@<server_ip>
      

    注意:配置免密码登录可以提高便利性,但也可能存在安全风险。保持私钥的安全是非常重要的,不要将私钥泄露给他人。如果需要撤销公钥的访问权限,可以从服务器的authorized_keys文件中删除相应的公钥。

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

400-800-1024

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

分享本页
返回顶部