分割线

手动挡

生成公私秘钥

  • 比如

    1
    ssh-keygen -t rsa -C "utsuko27@qq.com" -f ~/.ssh/Gitee_rsa
  • 生成后.ssh/文件夹下面就会出现两个文件

    • Gitee_rsa 私钥
    • Gitee_rsa.pub 公钥
  • 通过cd ~/.ssh或者cat ~/.ssh/Gitee_rsa.pub的方式获取公钥

    • 一般.ssh 路径为C:\Users\username\.ssh
    • 把公钥复制到远程机上.

配置连通

  • 在.ssh 下新建config文件,参照以下模板:

    1
    2
    3
    4
    5
    # gitee
    Host gitee.com
    HostName gitee.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/Gitee_rsa
  • 多个 ssh 秘钥在这个 config 文件里配置.

  • 如果不想让它确认输入 yes,可以在这个文件里加上一行:

    1
    StrictHostKeyChecking no
  • 配置文件完成,现在应该是这样子:

    20201207100813

测试命令

  • 终端进入这个.ssh 文件夹(不在这个文件夹下无法导通)

    1
    ssh -T git@gitee.com
  • 出现git@gitee.com: Permission denied (publickey).,说明哪里没配置好出问题了.

  • 出现Hi Weidows! You've successfully authenticated, but GITEE.COM does not provide shell access.说明配置好了.

  • 测试完成,两机处于连通状态!

分割线

自动挡

FinalShell

  • 连接树莓派,ip 为192.168.43.119,用户名为pi,密码为默认的raspberry

    20201203113101

分割线

VScode 连接

  • 安装插件Remote-SSH

    20201204202003
  • 安装后侧边栏出现远程资源管理器,然后点新建,出现下面东东~

    20210128005600
  • 照着他的提示输入就行,比如我以pi用户登录,树莓派内网ip192.168.2.116,那么应该输入

    1
    ssh pi@192.168.2.116 -A
  • 打开 ssh 配置文件查看一下,可以自定义修改配置,如下.

    • 我把 Host 后面的名字改成了树莓派,其他没动.
    1
    2
    3
    4
    Host 树莓派
    HostName 192.168.2.116
    User pi
    ForwardAgent yes
  • 打开输入对应用户的密码就可以登录了.

分割线

存在の问题

root-denied

  • 某些系统对 ssh 不开放 root,比如Deepin,网上有开放方法

深度(deepin)系统不能 ssh root 用户登录


VScode-ssh-断开连接

  • 按照上面配合后使用完全没有问题,但是 ssh 连接后一段时间你没有跟远程机传输数据的话,连接就会断开

  • 网上搜了一大顿,有些解决办法,比如修改ssh_config,卸载Chinese插件,TCP保活,定时唤醒等等…


  • 最终,我用二分法查出了问题所在:

    20210206124525
  • 问题出自于一个叫code time的插件,它的issue里面也提了这个 bug,还没解决.

    • 可以用wakatime替代,这个插件没事.

分割线

TCP 保活

  • 没特殊需求的话不需要配置.

    SSH 连接保活

  • ~/.ssh/config里添加如下:

    1
    ClientAliveInterval 10