Windows 中远程 SSH 登录 VPS 进行管理可以用 PuTTY、BvSshClient 等应用,但 Linux 中就没必要用他们了。

Linux 可以通过 OpenSSH,可以通过它来登录 VPS。

Linux 终端登录 SSH

1
ssh <userName>@<serverDomain or IP> -p <port>

快速登录

SSH 本身提供了登录配置文件 ~/.ssh/config,我们可以在本地配置 config 来快速登录 VPS。

  • 创建 config 脚本文件( home/user/.ssh/ 文件夹里面)

    1
    vim ~/.ssh/config
  • 配置 config 文件

    1
    2
    3
    4
    Host 配置别名(如,vps1)
    Hostname serverName 或 serverIp
    Port 端口
    User userName

    示例:

    1
    2
    3
    4
    Host myblog
    Hostname lizsblog.com
    Port 26522
    User root
  • 登录
    保存号 config 文件的配置之后,就可以用别名来快速登录了

    1
    ssh myblog

    不过这样还是需要登录密码的,下面可以用 IdentityFile 属性来设置不需要密码自动登录。


自动登录:ssh 密钥认证自动登录

ssh 密钥:~/.ssh/id_rsa; ssh 公钥:~/.ssh/id_rsa.pub

  • 在本地 PC 如果没有 ssh 公钥,则创建公钥

    1
    ssh-keygen -t rsa -C "comment"

    执行过程中连续回车即可。

-t:指定密钥类型,默认即为rsa,可以省略; -C:设置注释,显示在公钥最后,可以省略。

  • 将 ssh 公钥复制到远程服务器 ~/.ssh/authorized_keys 文件中

    • 简单粗暴:打开远程服务器,创建文件 ~/.ssh/authorized_keys,将本地 PC 的 ssh 公钥的内容复制到authorized_keys 中,注意是将内容追加到后面,前面可能已经有了其他人的 ssh 公钥。
    • 在本地终端用命令实现:
      1
      2
      3
      4
      // 如果远程终端没有创建 .ssh 文件夹
      cat ~/.ssh/id_rsa.pub | ssh username@hostname "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
      // 已经创建 .ssh 文件夹
      cat ~/.ssh/id_rsa.pub | ssh username@hostname "cat >> ~/.ssh/authorized_keys"
  • 在本地 ssh 配置文件~/.ssh/config 添加IdentityFile 属性

    1
    2
    3
    4
    Host myblog
    Hostname lizsblog.com
    User root
    IdentifyFile ~/.ssh/id_rsa
  • 自动登录

    1
    ssh myblog

    不需要输入密码,直接登录了远程服务器。


  • 创建多个服务器的快速登录
    只需要在 config 文件里面空行添加多个 Host 配置即可。多个服务器是可以共用同一个 ssh 公钥来实现自动登录的。

其他配置属性

  • 为了保持连接,ssh 每隔 30s 向 server 发出一次请求
    1
    2
    ServerAliveInterval 30    // timeout interval, unit seconds
    ServerAliveCountMax 10 // server 没有响应时,最大执行发送请求次数。default 3

其他参考 www.openssh.com