ssh-settings

记一下平时用到的有用的ssh设置和命令

  1. 设置防止自动断开
    ssh user@host -o ServerAliveInterval=30
    -o可以设置很多选项,ServerAliveInterval设置隔多少秒没收到数据之后,给对方发送消息请求响应,防止连接被中断

  2. 公钥验证免密码登陆
    服务端设置: 修改 /etc/ssh/sshd_config,设置 RSAAuthentication yes,重启ssh服务
    本机: 生成公钥 $ ssh-keygen,上传公钥 $ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

  3. 利用session clone来打开多个会话
    本机: 修改 ~/.ssh/config文件,加入下面内容

    #file:~/.ssh/config
    Host *
    ControlMaster auto
    ControlPath ~/.ssh/master-%r@%h:%p
    ControlPersist 10m

    上面的配置在第一次建立ssh连接的时候把连接作为master,后面的连接都会复用第一次建立的网络连接,通过ControlPath下面的文件来确定复用哪个。只要第一个连接不中断,后面ssh命令就可以不输入密码直接连接了。

  4. 利用tmux和session clone实现免密码登录
    找一台私人服务器,按照上面3步骤配置ssh的session clone
    创建tmux session: tmux new -s session
    在tmux里面登录: ssh user@host -o ServerAliveInterval=30
    这样你打开新的tmux窗口直接ssh就不需要密码了
    终端退出tmux: ctrl-b &关闭窗口, ctrl-b ddetach tmux client,这样tmux session的进程并不会退出,里面登录的ssh session也会保存下来
    重新登录: tmux attach -t sessionattach client,原来登录的ssh session可以继续使用
    登出服务器: 终端退出tmux后把tmux转到后台,假设1号job是tmux执行disown %1,如果进程被挂起需要执行kill -cont -42813,42813是tmux的pid

  5. 本地端口转发
    $ ssh -NT -D 8080 host

  6. python自动ssh登录
    利用下面两个库可以实现自动ssh登录
    pexpect模拟shell输入
    pyotp进行otp验证

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2015-2024 RivenZoo
  • Powered by Hexo Theme Ayer
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信