Linux下的ssh秘钥以及服务

ssh连接

远程管理
SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络上安全地进行远程登录和文件传输。下面是一些常用的SSH服务命令:

  1. 连接到远程服务器:

    ssh user@hostname
    

    其中,user是您在远程服务器上的用户名,hostname是远程服务器的主机名或IP地址。执行此命令后,系统会提示您输入密码来进行身份验证。

  2. 使用特定端口连接到远程服务器:

    ssh -p port user@hostname
    

    如果SSH服务器在非默认的端口上运行(默认端口为22),您可以使用-p选项指定端口号。

  3. 使用SSH密钥进行身份验证:

    ssh -i path/to/private_key user@hostname
    

    如果您使用SSH密钥对进行身份验证,可以使用-i选项指定私钥文件的路径。

  4. 传输文件到远程服务器(使用scp命令):

    scp path/to/local/file user@hostname:path/to/remote/directory
    

    这将把本地文件复制到远程服务器的指定目录中。同样,您需要提供正确的用户名、主机名和目标路径。

  5. 从远程服务器下载文件(使用scp命令):

    scp user@hostname:path/to/remote/file path/to/local/directory
    

    这将从远程服务器下载文件到本地指定目录。同样,您需要提供正确的用户名、主机名和远程文件路径。

ssh秘钥

生成和拷贝SSH密钥是一种更安全和方便的SSH身份验证方法。下面是生成和拷贝SSH密钥的步骤:

  1. 生成SSH密钥对:
    在本地计算机上打开终端或命令提示符,并执行以下命令来生成SSH密钥对:

    ssh-keygen -t rsa -b 4096
    

    这将生成一个RSA类型的密钥对,密钥长度为4096位。您可以按照提示输入密钥文件的保存路径和密码(可选)。

  2. 拷贝公钥到远程服务器:
    使用以下命令将公钥拷贝到远程服务器上的~/.ssh/authorized_keys文件中:

    ssh-copy-id user@hostname
    

    这将要求您输入远程服务器的密码,然后将本地生成的公钥自动复制到远程服务器上的授权密钥文件中。

    如果ssh-copy-id命令不可用,您可以手动复制公钥到远程服务器。使用以下命令将公钥内容复制到剪贴板:

    cat ~/.ssh/id_rsa.pub | pbcopy   # macOS
    cat ~/.ssh/id_rsa.pub | xclip   # Linux
    

    然后,在远程服务器上,使用文本编辑器打开~/.ssh/authorized_keys文件,并将公钥粘贴到文件中保存。

  3. 测试SSH连接:
    现在,您可以尝试使用SSH密钥进行连接,而无需输入密码:

    ssh user@hostname
    

    如果一切设置正确,您应该能够直接连接到远程服务器。