使用 autossh 实现 SSH 免密登陆
快速 SSH 免密登陆

前言

使用 autossh 在 Linux & Mac 实现 SSH 免密登陆

安装 autossh

执行如下命令:

    $ git clone https://github.com/FeeiCN/autossh.git --depth=1
    $ sudo cp autossh/autossh /usr/local/bin/

配置 autossh

创建 .autosshrc 文件:

    $ vim ~/.autosshrc

编辑内容:

    server_name|ip|user|password|port|is_bastion

    // example    
    堡垒机|192.168.0.1|hackerdom|123456|22|1
    阿里云|192.168.0.2|mayun|123456|22|0
    腾讯云|192.168.0.3|mahuateng|123456|22|0

使用

在终端输入如下命令:

    $ autossh

会显示如下界面,之后输入服务器序号即可:

    $ autossh
    ############################################################
    #                     [AUTO SSH]                           #
    #                                                          #
    #                                                          #
    # [1] 堡垒机 - 192.168.0.1:hackerdom                        #
    # [2] 阿里云 - 192.168.0.2:mayun                            #
    # [3] 腾讯云 - 192.168.0.3:mahuateng                        #
    #                                                          #
    #                                                          #
    ############################################################
    Server Number:(Input Server Num)

快速登陆服务器(例如 阿里云):

    $ autossh 2

使用 sudo 权限登陆服务器

    $ autossh 2 sudo

堡垒机操作

    $ autossh 1 192.168.1.1
    $ autossh 1 192.168.1.1 sudo

踩坑

在使用过程中发现,autossh 登陆之后使用 rzsz 上传下载文件的时候会出现假死状态,于是查看了 autossh 源码发现是使用 expect 来实现自动化登陆,经过一番寻找之后发现一个解决方案,在脚本之前增加如下命令:

    export LC_CTYPE=en_US

缺点是远程机器里面的中文可能会乱码。


最后修改于 2019-05-19

此篇文章的评论功能已经停用。