分割线

手动挡

生成公私秘钥

  • 比如

    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文件,参照以下模板:

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

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

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

    20201207100813

测试命令

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

    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.说明配置好了.

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


跳板机代理连接

使用跳板机进行代理 ssh 连接, 需要在最终的目标机子 ~/.ssh/authorized_keys 内添加本机的公钥, 然后配置本机 ssh config 如下

# 跳板机
Host board
HostName xxxx
User root
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

# 生产机
Host production
HostName xxxx
User root
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
ProxyJump board

分割线

自动挡

FinalShell

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

    20201203113101

分割线

VScode 连接

  • 安装插件Remote-SSH

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

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

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

    • 我把 Host 后面的名字改成了树莓派,其他没动.
    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替代,这个插件没事.


ssh-too-open

weidows@bogon ~ % ssh codeup.aliyun.com
Warning: Permanently added 'codeup.aliyun.com,118.31.165.50' (RSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/weidows/.ssh/liuwei_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/weidows/.ssh/liuwei_rsa": bad permissions
weidows@codeup.aliyun.com: Permission denied (publickey).

解决方案: [1]

chmod 400 ~/.ssh/id_rsa

TCP-保活

  • 没特殊需求的话不需要配置, 在~/.ssh/config里添加如下:

    ClientAliveInterval 10

分割线

借物表

[1]: SSH Key: “Permissions 0644 for ‘id_rsa.pub’ are too open.” on mac