SSH Tips

克隆 SSH 会话

类似将浏览器 A 中的 cookie(如:session_id)复制到另一个浏览器 B(A、B 即两个客户端的生命周期),复制后,浏览器 B 就不需要再输入认证信息登录了,即此时服务端认为 A、B 是同一个登录用户。
在 ssh 中的体现是,当你连接 SSH 服务端后,会在 ~/.ssh/ 下创建一个 socket 文件,在 socket 存在期间,再次连接 SSH 服务端(相同用户名、端口。主机名)会复用这个连接,即不需要再输入密码进行认证了。

使用方法:

vim ~/.ssh/config  
Host *  
    ControlMaster auto
    ControlPath ~/.ssh/%h-%p-%r
    ControlPersist yes

让 SSH「记住密码」

  1. 在本机下生成 ssh 公钥和私钥(public_key & private_key

    ssh-keygen -t rsa
    

    默认生成在 ~/.ssh/ 目录下,id_rsa 是私钥,id_rsa.pub 是公钥。

  2. 利用 SCP 把生成的公钥复制到服务器中需要登录用户的 ~/.ssh/ 目录下,并命名为 authorized_keys

    scp ~/.ssh/id_rsa.pub root@host /root/.ssh/authorized_keys
    

    如果需要多个客户端都用同一个服务端用户名,可以将公钥内容 append(追加)到 authorized_keys 文件内。

  3. 用 vi 修改服务器中的文件 /etc/ssh/sshd_config去掉下列内容的注释:

    RSAAuthentication    yes
    PubkeyAuthentication yes
    AuthorizedKeysFile   .ssh/authorized_keys
    
  4. 修改本机 SSH 配置文件 ~/.ssh/config,格式如下

    Host host1
    Hostname        192.168.0.1
    Port            22
    User            root
    IdentityFile    ~/.ssh/id_rsa
    
    
    Host host2
    Hostname        192.168.0.2
    Port            22
    User            root
    IdentityFile    ~/.ssh/id_rsa
    
  5. 在终端中执行 ssh host2 即可直接连接到所记录的服务器

正在加载 Disqus 评论组件...