相关链接:

菜鸟:查看本机 ssh 公钥,生成公钥

使用 SSH 协议可以连接远程服务器和服务并向它们验证。 利用 SSH 密钥可以连接到 GitHub,而无需在每次访问时都提供用户名和 personal access token。还可以使用 SSH 密钥对提交进行签名。

一、检查现有 SSH 密钥

在生成 SSH 密钥之前,您可以检查是否有任何现有的 SSH 密钥。

  1. 打开终端。

  2. 输入 ls -al ~/.ssh 以查看是否存在现有的 SSH 密钥。

    $ ls -al ~/.ssh
    # Lists the files in your .ssh directory, if they exist
    
  3. 检查目录列表以查看是否已经有 SSH 公钥。 默认情况下,GitHub 的一个支持的公钥的文件名是以下之一。

  4. 提示:如果收到错误,指示 ~/.ssh 不存在,则表明默认位置中没有现有的 SSH 密钥对。 您可以在下一步中创建新的 SSH 密钥对。

  5. 生成新的 SSH 密钥或上传现有密钥。

二、生成新的 SSH 密钥

检查现有 SSH 密钥后,您可以生成新 SSH 密钥以用于身份验证

  1. 打开终端。

  2. 粘贴下面的文本(替换为您的电子邮件地址)。

    // 进入本机.ssh目录【也可以放在任意地方,推荐放在本机.ssh目录中】
    cd ~/.ssh
    
    ssh-keygen -t ed25519 -C "your_email@example.com"
    

    注意:如果你使用的是不支持 Ed25519 算法的旧系统,请使用以下命令:

     ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    

    这将以提供的电子邮件地址为标签创建新 SSH 密钥。

    > Generating public/private ALGORITHM key pair.
    
    

    当系统提示您“Enter a file in which to save the key

    (输入要保存密钥的文件【给密钥文件自定义命名】)”时,

    可以按 Enter 键接受默认文件位置。 请注意,如果以前创建了 SSH 密钥,则 ssh-keygen 可能会要求重写另一个密钥,在这种情况下,我们建议创建自定义命名的 SSH 密钥。 为此,请键入默认文件位置,并将 id_ssh_keyname 替换为自定义密钥名称。

    > Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM): [Press enter]

  3. 在提示符下,键入安全密码。 有关详细信息,请参阅“使用 SSH 密钥密码”。

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
    

    ssh-keygen命令 – 生成SSH密钥文件

    ssh-keygen命令来自英文词组“SSH key generate”的缩写,其功能是用于生成SSH密钥文件。ssh-keygen命令能够对SSH密钥文件进行生成、管理、转换等工作,支持RSA和DSA两种密钥格式。

    语法格式:ssh-keygen [参数] [对象]

    常用参数:

    Untitled

    用配置文件可以管理多个远程服务器,其格式如下:

    Host 服务器名A
        user 用户名
        hostname 服务器ip
        port 端口号
        identityfile 本地私钥地址
        ...
    Host 服务器名B
        user 用户名
        hostname 服务器ip
        port 端口号
        identityfile 本地私钥地址
        ...
    ...
    ...
    Host *
        ...
        ...
    
    

    通过Host指定配置块,用tab键来区分配置头和内置参数

    所有参数值都可使用通配符设定,比如可以设置一个Host值为星号(*),用于设置全局配置

    注释用#号开头

    配置文件不区分大小写,所以Hosthost一样

    常用配置选项

    使用方式

    比如配置文件如下:

    Host server
        user ubuntu
        hostname 123.231.032.123
        port 22
    

    连接方式如下:

    # 登录远程服务器【server:用户设置的名称】
    $ ssh server
    
    ⚠️注意:这里传输文件夹可能需要权限,默认如果服务器没有对应的文件夹会自动创建,否则会提示错误❌。
    
    # 你可以使用mkdir命令创建目录
    
    ssh server
    mkdir -p /www/wwwroot/fileName
    exit
    
    # 传输文件【不需要登录ssh,直接在本地传输文件的目录中执行该条命令】
    $ scp hello.txt server:/www/wwwroot/fileName
    
    # 要上传文件夹,您可以使用-r选项,该选项表示递归复制,以包括目录中的所有内容。
    scp -r your_directory/ server:/www/wwwroot/fileName
    
    # 登录远程服务器
    ssh server
    #获取当前文件路径
    pwd
    

    具体操作

    1、登录操作

    <aside> 💡 任意地方打开终端,输入:ssh ***** 即可远程登录操作

    </aside>

    Untitled

    2、上传文件【注意上传文件不需要事先登录ssh】

    <aside> 💡 选中demo文件,鼠标右击使用终端打开

    </aside>

    Untitled

    <aside> 💡 通过scp命令进行上传文件

    </aside>

    Untitled

    <aside> 💡 注意如果是上传“文件夹”需要提前在服务器上创建好文件夹

    </aside>

    Untitled

<aside> 💡 登录ssh

</aside>

Untitled