• Linux- 使用ssh远程连接


    1. Linux上安装ssh

    如果在Linux系统上运行sudo service ssh status提示Unit ssh.service could not be found.,这意味着SSH服务没有安装或者它可能在系统上有一个不同的服务名称。

    下面,我们来介绍ssh的安装步骤:

    1. 安装SSH服务:

      在不同的Linux发行版上,安装命令会有所不同:

      • Debian/Ubuntu:

        sudo apt update
        sudo apt install openssh-server
        
        • 1
        • 2
      • Red Hat/CentOS/Fedora:

        sudo yum install openssh-server
        
        • 1
      • Arch Linux:

        sudo pacman -S openssh
        
        • 1
    2. 启动SSH服务:

      安装后,需要启动SSH服务。

      sudo service ssh start
      
      • 1

      或者对于systemd系统:

      sudo systemctl start sshd
      
      • 1
    3. 设置SSH服务在启动时自动运行:

      如果希望SSH服务在系统启动时自动运行,可以执行:

      sudo systemctl enable sshd
      
      • 1
    4. 再次检查SSH服务的状态:

      现在,可以检查SSH服务的状态,看看它是否正在运行:

      sudo service ssh status
      
      • 1

      或者对于systemd系统:

      sudo systemctl status sshd
      
      • 1

    按照上述步骤,应该能够在Linux机器上安装、启动并运行SSH服务。

    2. 使用ssh远程连接服务器

    在已经在目标机器上安装了SSH服务之后,可以从另一台机器进行连接。在默认的设置中,应该可以使用密码身份验证来连接,但是,使用SSH公钥身份验证通常更为安全和方便。

    以下是如何连接及如何设置公钥身份验证的基本步骤:

    1. 使用密码连接:
    在默认配置下,可以使用以下命令来连接:

    ssh username@target_ip_address
    
    • 1

    会被提示输入密码。输入目标机器上相应用户的密码后,应该能够成功连接。

    2. 设置公钥身份验证:

    公钥身份验证允许我们无需每次输入密码即可连接。

    1. 在本地机器上生成一个SSH密钥对 (如果还没有的话):
    ssh-keygen
    
    • 1

    这会在~/.ssh目录下生成id_rsa (私钥) 和 id_rsa.pub (公钥)。

    1. 将公钥传输到目标机器
    ssh-copy-id username@target_ip_address
    
    • 1

    此命令会自动将公钥(~/.ssh/id_rsa.pub)复制到目标机器的~/.ssh/authorized_keys文件中。

    1. 连接到目标机器
    ssh username@target_ip_address
    
    • 1

    由于已经设置了公钥身份验证,应该可以在不输入密码的情况下直接连接。

    1. [可选] 禁用密码身份验证增加安全性
      如果只想通过SSH公钥身份验证来连接,可以在目标机器的/etc/ssh/sshd_config文件中进行以下修改:
    PasswordAuthentication no
    
    • 1

    然后,重启SSH服务:

    sudo service ssh restart
    
    • 1

    sudo systemctl restart sshd
    
    • 1

    通过使用公钥身份验证,不仅可以提高安全性,还可以更方便地连接,尤其是当我们需要经常连接或进行自动化任务时。

  • 相关阅读:
    SpringBoot3新特性
    ChatGPT实战100例 - (18) 用事件风暴玩转DDD
    ERP软件公司选型的重要根据
    js计算数组中每个元素出现的次数
    ActiveMQ 反序列化漏洞(CVE-2015-5254)特征分析
    ES报错 Unable to parse response body for Response
    C#学习系列之装箱、拆箱、自定义转化、重载运算符
    如何多号定时发朋友圈?
    前端进击笔记第十四节 单页应用与前端路由库设计原理
    Java相关面试题9:实现动画效果
  • 原文地址:https://blog.csdn.net/weixin_43844521/article/details/133715895